- block: bugfix: Don't pause vm when NOSPACE EIO happened - block: enable cache mode of empty cdrom - block/mirror: fix file-system went to read-only after block-mirror - scsi-bus: fix incorrect call for blk_error_retry_reset_timeout() - scsi-bus: fix unmatched object_unref() - block: Add sanity check when setting retry parameters - block-backend: Stop retrying when draining - scsi-disk: Add support for retry on errors - scsi-bus: Refactor the code that retries requests - virtio_blk: Add support for retry on errors - block: Add error retry param setting - block-backend: Add timeout support for retry - block-backend: Enable retry action on errors - block-backend: Add device specific retry callback - block-backend: Introduce retry timer - qapi/block-core: Add retry option for error action - scsi: bugfix: fix division by zero - scsi: cdrom: Fix crash after remote cdrom detached - qemu-pr: fixed ioctl failed for multipath disk - scsi-disk: define props in scsi_block_disk to avoid memleaks - bugfix: fix possible memory leak - bugfix: fix some illegal memory access and memory leak - util/log: add CONFIG_DISABLE_QEMU_LOG macro - log: Add some logs on VM runtime path - bugfix: fix eventfds may double free when vm_id reused in ivshmem - hw/display/macfb: Fix missing ERRP_GUARD() in macfb_nubus_realize() - hw/cxl/cxl-host: Fix missing ERRP_GUARD() in cxl_fixed_memory_window_config() - qemu-img create: 'cache' paramter only use for reg file image - qemu-img: add qemu-img direct create - qemu-img block: set zero flags only when discard_zeros of the block supported - Revert "file-posix: Remove unused s->discard_zeroes" - pcie_sriov: Validate NumVFs (CVE-2024-26327) - hw/nvme: Use pcie_sriov_num_vfs() (CVE-2024-26328) - hw/acpi/cpu: Use CPUState typedef - target/i386/sev: Fix missing ERRP_GUARD() for error_prepend() - virtio-gpu: remove needless condition - hw/i2c/smbus_slave: Add object path on error prints - vfio/pci: Ascend710 change to bar2 quirk - vfio/pci: Ascend910 need 4Bytes quirk in bar0 - vfio/pci: Ascend710 need 4Bytes quirk in bar0 - vfio/pci: Ascend310 need 4Bytes quirk in bar4 - chardev/char-socket: Fix TLS io channels sending too much data to the backend - i386/cpuid: Move leaf 7 to correct group - i386/cpuid: Decrease cpuid_i when skipping CPUID leaf 1F - i386/cpu: Mask with XCR0/XSS mask for FEAT_XSAVE_XCR0_HI and FEAT_XSAVE_XSS_HI leafs - i386/cpu: Clear FEAT_XSAVE_XSS_LO/HI leafs when CPUID_EXT_XSAVE is not available - blkio: Respect memory-alignment for bounce buffer allocations - virtio-gpu: Correct virgl_renderer_resource_get_info() error check - hw/usb: Style cleanup - tests/qemu-iotests: resolved the problem that the 108 test cases in the container fail Signed-off-by: Jiabo Feng <fengjiabo1@huawei.com> (cherry picked from commit 404d45bf9147058a475a8031c454a6c8e0acc123)
718 lines
24 KiB
RPMSpec
718 lines
24 KiB
RPMSpec
# Whether to support Ceph rbd storage backend
|
|
%bcond_without rbd
|
|
|
|
Name: qemu
|
|
Version: 8.2.0
|
|
Release: 2
|
|
Epoch: 11
|
|
Summary: QEMU is a generic and open source machine emulator and virtualizer
|
|
License: GPLv2 and BSD and MIT and CC-BY-SA-4.0
|
|
URL: http://www.qemu.org
|
|
Source0: https://download.qemu.org/%{name}-%{version}%{?rcstr}.tar.xz
|
|
Source1: 80-kvm.rules
|
|
Source2: 99-qemu-guest-agent.rules
|
|
Source3: bridge.conf
|
|
Source4: BinDir.tar.gz
|
|
|
|
Patch0001: tests-qemu-iotests-resolved-the-problem-that-the-108.patch
|
|
Patch0002: hw-usb-Style-cleanup.patch
|
|
Patch0003: virtio-gpu-Correct-virgl_renderer_resource_get_info-.patch
|
|
Patch0004: blkio-Respect-memory-alignment-for-bounce-buffer-all.patch
|
|
Patch0005: i386-cpu-Clear-FEAT_XSAVE_XSS_LO-HI-leafs-when-CPUID.patch
|
|
Patch0006: i386-cpu-Mask-with-XCR0-XSS-mask-for-FEAT_XSAVE_XCR0.patch
|
|
Patch0007: i386-cpuid-Decrease-cpuid_i-when-skipping-CPUID-leaf.patch
|
|
Patch0008: i386-cpuid-Move-leaf-7-to-correct-group.patch
|
|
Patch0009: chardev-char-socket-Fix-TLS-io-channels-sending-too-.patch
|
|
Patch0010: vfio-pci-Ascend310-need-4Bytes-quirk-in-bar4.patch
|
|
Patch0011: vfio-pci-Ascend710-need-4Bytes-quirk-in-bar0.patch
|
|
Patch0012: vfio-pci-Ascend910-need-4Bytes-quirk-in-bar0.patch
|
|
Patch0013: vfio-pci-Ascend710-change-to-bar2-quirk.patch
|
|
Patch0014: hw-i2c-smbus_slave-Add-object-path-on-error-prints.patch
|
|
Patch0015: virtio-gpu-remove-needless-condition.patch
|
|
Patch0016: target-i386-sev-Fix-missing-ERRP_GUARD-for-error_pre.patch
|
|
Patch0017: hw-acpi-cpu-Use-CPUState-typedef.patch
|
|
Patch0018: hw-nvme-Use-pcie_sriov_num_vfs-CVE-2024-26328.patch
|
|
Patch0019: pcie_sriov-Validate-NumVFs-CVE-2024-26327.patch
|
|
Patch0020: Revert-file-posix-Remove-unused-s-discard_zeroes.patch
|
|
Patch0021: qemu-img-block-set-zero-flags-only-when-discard_zero.patch
|
|
Patch0022: qemu-img-add-qemu-img-direct-create.patch
|
|
Patch0023: qemu-img-create-cache-paramter-only-use-for-reg-file.patch
|
|
Patch0024: hw-cxl-cxl-host-Fix-missing-ERRP_GUARD-in-cxl_fixed_.patch
|
|
Patch0025: hw-display-macfb-Fix-missing-ERRP_GUARD-in-macfb_nub.patch
|
|
Patch0026: bugfix-fix-eventfds-may-double-free-when-vm_id-reuse.patch
|
|
Patch0027: log-Add-some-logs-on-VM-runtime-path.patch
|
|
Patch0028: util-log-add-CONFIG_DISABLE_QEMU_LOG-macro.patch
|
|
Patch0029: bugfix-fix-some-illegal-memory-access-and-memory-lea.patch
|
|
Patch0030: bugfix-fix-possible-memory-leak.patch
|
|
Patch0031: scsi-disk-define-props-in-scsi_block_disk-to-avoid-m.patch
|
|
Patch0032: qemu-pr-fixed-ioctl-failed-for-multipath-disk.patch
|
|
Patch0033: scsi-cdrom-Fix-crash-after-remote-cdrom-detached.patch
|
|
Patch0034: scsi-bugfix-fix-division-by-zero.patch
|
|
Patch0035: qapi-block-core-Add-retry-option-for-error-action.patch
|
|
Patch0036: block-backend-Introduce-retry-timer.patch
|
|
Patch0037: block-backend-Add-device-specific-retry-callback.patch
|
|
Patch0038: block-backend-Enable-retry-action-on-errors.patch
|
|
Patch0039: block-backend-Add-timeout-support-for-retry.patch
|
|
Patch0040: block-Add-error-retry-param-setting.patch
|
|
Patch0041: virtio_blk-Add-support-for-retry-on-errors.patch
|
|
Patch0042: scsi-bus-Refactor-the-code-that-retries-requests.patch
|
|
Patch0043: scsi-disk-Add-support-for-retry-on-errors.patch
|
|
Patch0044: block-backend-Stop-retrying-when-draining.patch
|
|
Patch0045: block-Add-sanity-check-when-setting-retry-parameters.patch
|
|
Patch0046: scsi-bus-fix-unmatched-object_unref.patch
|
|
Patch0047: scsi-bus-fix-incorrect-call-for-blk_error_retry_rese.patch
|
|
Patch0048: block-mirror-fix-file-system-went-to-read-only-after.patch
|
|
Patch0049: block-enable-cache-mode-of-empty-cdrom.patch
|
|
Patch0050: block-bugfix-Don-t-pause-vm-when-NOSPACE-EIO-happene.patch
|
|
|
|
BuildRequires: flex
|
|
BuildRequires: gcc
|
|
BuildRequires: make
|
|
BuildRequires: bison
|
|
BuildRequires: texinfo
|
|
BuildRequires: perl-podlators
|
|
BuildRequires: chrpath
|
|
BuildRequires: gettext
|
|
BuildRequires: python-sphinx
|
|
BuildRequires: ninja-build
|
|
|
|
BuildRequires: zlib-devel
|
|
BuildRequires: zstd-devel
|
|
BuildRequires: gtk3-devel
|
|
BuildRequires: gnutls-devel
|
|
BuildRequires: numactl-devel
|
|
BuildRequires: device-mapper-multipath-devel
|
|
BuildRequires: rdma-core-devel
|
|
BuildRequires: libcap-devel
|
|
BuildRequires: libcap-ng-devel
|
|
BuildRequires: cyrus-sasl-devel
|
|
BuildRequires: libaio-devel
|
|
BuildRequires: usbredir-devel >= 0.5.2
|
|
BuildRequires: libseccomp-devel >= 2.3.0
|
|
BuildRequires: systemd-devel
|
|
BuildRequires: libiscsi-devel
|
|
BuildRequires: snappy-devel
|
|
BuildRequires: lzo-devel
|
|
BuildRequires: ncurses-devel
|
|
BuildRequires: libattr-devel
|
|
BuildRequires: libcurl-devel
|
|
BuildRequires: libjpeg-devel
|
|
BuildRequires: libpng-devel
|
|
BuildRequires: pixman-devel
|
|
BuildRequires: libusbx-devel
|
|
BuildRequires: bzip2-devel
|
|
BuildRequires: libepoxy-devel
|
|
BuildRequires: libtasn1-devel
|
|
BuildRequires: libxml2-devel
|
|
BuildRequires: libudev-devel
|
|
BuildRequires: pam-devel
|
|
BuildRequires: perl-Test-Harness
|
|
BuildRequires: python3-devel
|
|
%if %{with rbd}
|
|
BuildRequires: librbd-devel
|
|
%endif
|
|
BuildRequires: krb5-devel
|
|
BuildRequires: libssh-devel
|
|
BuildRequires: glib2
|
|
BuildRequires: libfdt-devel
|
|
BuildRequires: virglrenderer-devel
|
|
BuildRequires: libslirp-devel
|
|
BuildRequires: liburing-devel
|
|
%ifarch loongarch64
|
|
BuildRequires: spice-server-devel
|
|
%endif
|
|
|
|
# for upgrade from qemu-kvm
|
|
Provides: qemu-kvm
|
|
Obsoletes: qemu-kvm < 11:8.2.0
|
|
|
|
Requires(post): /usr/bin/getent
|
|
Requires(post): /usr/sbin/groupadd
|
|
Requires(post): /usr/sbin/useradd
|
|
Requires(post): systemd-units
|
|
Requires(preun): systemd-units
|
|
Requires(postun): systemd-units
|
|
Requires(postun): qemu-block-iscsi
|
|
Requires(postun): qemu-block-curl
|
|
Requires(postun): qemu-hw-usb-host
|
|
Requires: libgcc
|
|
Requires: liburing
|
|
|
|
|
|
%description
|
|
QEMU is a FAST! processor emulator using dynamic translation to achieve good emulation speed.
|
|
|
|
QEMU has two operating modes:
|
|
|
|
Full system emulation. In this mode, QEMU emulates a full system (for example a PC),
|
|
including one or several processors and various peripherals. It can be used to launch
|
|
different Operating Systems without rebooting the PC or to debug system code.
|
|
|
|
User mode emulation. In this mode, QEMU can launch processes compiled for one CPU on another CPU.
|
|
It can be used to launch the Wine Windows API emulator (https://www.winehq.org) or to ease
|
|
cross-compilation and cross-debugging.
|
|
You can refer to https://www.qemu.org for more infortmation.
|
|
|
|
%package guest-agent
|
|
Summary: QEMU guest agent
|
|
Requires(post): systemd-units
|
|
Requires(preun): systemd-units
|
|
Requires(postun): systemd-units
|
|
%description guest-agent
|
|
This package provides an agent to run inside guests, which communicates
|
|
with the host over a virtio-serial channel named "org.qemu.guest_agent.0"
|
|
Please refer to https://wiki.qemu.org/Features/GuestAgent for more information.
|
|
|
|
%package help
|
|
Summary: Documents for qemu
|
|
Buildarch: noarch
|
|
%description help
|
|
This package provides documents for qemu related man help and information.
|
|
|
|
%package img
|
|
Summary: QEMU command line tool for manipulating disk images
|
|
%description img
|
|
This package provides a command line tool for manipulating disk images
|
|
|
|
%if %{with rbd}
|
|
%package block-rbd
|
|
Summary: Qemu-block-rbd
|
|
%description block-rbd
|
|
This package provides RBD support for Qemu
|
|
%endif
|
|
|
|
%package block-ssh
|
|
Summary: Qemu-block-ssh
|
|
%description block-ssh
|
|
This package provides block-ssh support for Qemu
|
|
|
|
%package block-iscsi
|
|
Summary: Qemu-block-iscsi
|
|
%description block-iscsi
|
|
This package provides block-iscsi support for Qemu
|
|
|
|
%package block-curl
|
|
Summary: Qemu-block-curl
|
|
%description block-curl
|
|
This package provides block-curl support for Qemu
|
|
|
|
%package hw-usb-host
|
|
Summary: Qemu-hw-usb-host
|
|
%description hw-usb-host
|
|
This package provides hw-usb-host support for Qemu
|
|
|
|
%ifarch %{ix86} x86_64
|
|
%package seabios
|
|
Summary: QEMU seabios
|
|
%description seabios
|
|
This package include bios-256k.bin and bios.bin of seabios
|
|
%endif
|
|
|
|
%package system-aarch64
|
|
Summary: Qemu-system-aarch64
|
|
Requires: qemu
|
|
%description system-aarch64
|
|
This package provides the QEMU system emulator for AArch64.
|
|
|
|
%package system-arm
|
|
Summary: Qemu-system-arm
|
|
Requires: qemu
|
|
%description system-arm
|
|
This package provides the QEMU system emulator for ARM.
|
|
|
|
%package system-x86_64
|
|
Summary: Qemu-system-x86_64
|
|
Requires: qemu
|
|
%description system-x86_64
|
|
This package provides the QEMU system emulator for x86_64.
|
|
|
|
%package system-ppc64
|
|
Summary: Qemu-system-ppc64
|
|
Requires: qemu
|
|
%description system-ppc64
|
|
This package provides the QEMU system emulator for ppc64le.
|
|
|
|
%package system-riscv
|
|
Summary: Qemu-system-riscv32, Qemu-system-riscv64
|
|
Requires: qemu
|
|
%description system-riscv
|
|
This package provides the QEMU system emulator for riscv.
|
|
|
|
%package system-loongarch64
|
|
Summary: Qemu-system-loongarch64
|
|
Requires: qemu
|
|
%description system-loongarch64
|
|
This package provides the QEMU system emulator for loongarch64.
|
|
|
|
%prep
|
|
%setup -q -n qemu-%{version}%{?rcstr}
|
|
%autopatch -p1
|
|
|
|
%build
|
|
%ifarch x86_64
|
|
buildarch="x86_64-softmmu"
|
|
targetarch="aarch64-softmmu arm-softmmu riscv32-softmmu riscv64-softmmu"
|
|
%endif
|
|
%ifarch aarch64
|
|
buildarch="aarch64-softmmu"
|
|
targetarch="x86_64-softmmu arm-softmmu riscv32-softmmu riscv64-softmmu"
|
|
%endif
|
|
|
|
%ifarch ppc64le
|
|
buildarch="ppc64-softmmu"
|
|
targetarch="x86_64-softmmu aarch64-softmmu arm-softmmu riscv32-softmmu riscv64-softmmu"
|
|
%endif
|
|
|
|
%ifarch loongarch64
|
|
buildarch="loongarch64-softmmu"
|
|
targetarch="x86_64-softmmu aarch64-softmmu arm-softmmu riscv32-softmmu riscv64-softmmu"
|
|
%endif
|
|
|
|
%ifarch riscv64
|
|
buildarch="riscv64-softmmu"
|
|
targetarch="x86_64-softmmu aarch64-softmmu arm-softmmu riscv32-softmmu"
|
|
%endif
|
|
|
|
buildldflags="VL_LDFLAGS=-Wl,--build-id"
|
|
qemubuilddir="build"
|
|
|
|
tar xf %{SOURCE4}
|
|
cd BinDir/
|
|
\cp -r -a . ../
|
|
cd ../
|
|
|
|
./configure \
|
|
--prefix=%{_prefix} \
|
|
--target-list="${buildarch} ${targetarch}" \
|
|
--extra-cflags="%{optflags} -fPIE -DPIE -fPIC -ftls-model=initial-exec" \
|
|
--extra-ldflags="-Wl,--build-id -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack" \
|
|
--datadir=%{_datadir} \
|
|
--docdir=%{_docdir}/ \
|
|
--libdir=%{_libdir} \
|
|
--libexecdir=%{_libexecdir} \
|
|
--localstatedir=%{_localstatedir} \
|
|
--sysconfdir=%{_sysconfdir} \
|
|
--interp-prefix=%{_prefix}/qemu-%%M \
|
|
--firmwarepath=%{_datadir}/%{name} \
|
|
--with-pkgversion=%{name}-%{version}-%{release} \
|
|
--python=/usr/bin/python3 \
|
|
--disable-slirp \
|
|
--enable-slirp-smbd \
|
|
--enable-gtk \
|
|
--enable-docs \
|
|
--enable-guest-agent \
|
|
--enable-pie \
|
|
--enable-numa \
|
|
--enable-mpath \
|
|
--disable-libnfs \
|
|
--disable-bzip2 \
|
|
--enable-kvm \
|
|
--enable-tcg \
|
|
--enable-rdma \
|
|
--enable-linux-aio \
|
|
--enable-linux-io-uring \
|
|
--enable-cap-ng \
|
|
--enable-vhost-user \
|
|
--enable-vhost-net \
|
|
--enable-vhost-kernel \
|
|
--enable-vhost-user-blk-server \
|
|
--enable-vhost-vdpa \
|
|
--enable-tpm \
|
|
--enable-modules \
|
|
--enable-libssh \
|
|
--enable-fdt \
|
|
--enable-virglrenderer \
|
|
--enable-cap-ng \
|
|
--enable-libusb \
|
|
%if %{with rbd}
|
|
--enable-rbd \
|
|
%else
|
|
--disable-rbd \
|
|
%endif
|
|
--disable-dmg \
|
|
--disable-qcow1 \
|
|
--disable-vdi \
|
|
--disable-vvfat \
|
|
--disable-qed \
|
|
--disable-parallels \
|
|
--disable-capstone \
|
|
--disable-smartcard \
|
|
--enable-zstd \
|
|
--disable-brlapi \
|
|
--disable-plugins \
|
|
--enable-debug
|
|
|
|
make %{?_smp_mflags} $buildldflags V=1
|
|
|
|
|
|
cp ${qemubuilddir}/${buildarch}/qemu-system-* qemu-kvm
|
|
|
|
%install
|
|
|
|
make %{?_smp_mflags} DESTDIR=%{buildroot} \
|
|
install
|
|
|
|
%find_lang %{name}
|
|
install -m 0755 qemu-kvm %{buildroot}%{_libexecdir}/
|
|
ln -s %{_libexecdir}/qemu-kvm %{buildroot}/%{_bindir}/qemu-kvm
|
|
|
|
install -D -p -m 0644 contrib/systemd/qemu-pr-helper.service %{buildroot}%{_unitdir}/qemu-pr-helper.service
|
|
install -D -p -m 0644 contrib/systemd/qemu-pr-helper.socket %{buildroot}%{_unitdir}/qemu-pr-helper.socket
|
|
install -D -p -m 0644 qemu.sasl %{buildroot}%{_sysconfdir}/sasl2/qemu.conf
|
|
install -D -m 0644 %{_sourcedir}/bridge.conf %{buildroot}%{_sysconfdir}/qemu/bridge.conf
|
|
install -D -m 0644 %{_sourcedir}/80-kvm.rules %{buildroot}/usr/lib/udev/rules.d/80-kvm.rules
|
|
|
|
# For qemu-guest-agent package
|
|
%global _udevdir /lib/udev/rules.d
|
|
install -D -p -m 0644 contrib/systemd/qemu-guest-agent.service %{buildroot}%{_unitdir}/qemu-guest-agent.service
|
|
install -D -m 0644 %{_sourcedir}/99-qemu-guest-agent.rules %{buildroot}%{_udevdir}/99-qemu-guest-agent.rules
|
|
mkdir -p %{buildroot}%{_localstatedir}/log
|
|
touch %{buildroot}%{_localstatedir}/log/qga-fsfreeze-hook.log
|
|
|
|
# For qemu docs package
|
|
%global qemudocdir %{_docdir}/%{name}
|
|
rm -rf %{buildroot}%{qemudocdir}/specs
|
|
rm -rf %{buildroot}%{qemudocdir}/.buildinfo
|
|
rm -rf %{buildroot}%{qemudocdir}/objects.inv
|
|
rm -rf %{buildroot}%{qemudocdir}/genindex.html
|
|
rm -rf %{buildroot}%{qemudocdir}/index.html
|
|
install -D -p -m 0644 -t %{buildroot}%{qemudocdir} README.rst COPYING COPYING.LIB LICENSE
|
|
chmod -x %{buildroot}%{_mandir}/man1/*
|
|
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/vgabios-ati.bin
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/bios-microvm.bin
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/openbios-*
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/QEMU,*.bin
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/bamboo.dtb
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/canyonlands.dtb
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/hppa-firmware.img
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/palcode-clipper
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/petalogix-*
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/qemu_vga.ndrv
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/s390-*
|
|
%ifnarch ppc64le
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/slof.bin
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/skiboot.lid
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/spapr-*
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/ppc_*
|
|
%endif
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/u-boot*
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/core3-hmcode
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/core3-reset
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/uefi-bios-sw
|
|
rm -rf %{buildroot}%{_bindir}/ivshmem*
|
|
rm -f %{buildroot}%{_datadir}/%{name}/edk2*
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/firmware
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/qemu-nsis.bmp
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/audio-pa.so
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/block-gluster.so
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/ui-sdl.so
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/chardev-baum.so
|
|
%ifnarch loongarch64
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/audio-oss.so
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/audio-spice.so
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/ui-curses.so
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/ui-gtk.so
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/chardev-spice.so
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/hw-display-qxl.so
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/hw-s390x-virtio-gpu-ccw.so
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/hw-usb-redirect.so
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/ui-opengl.so
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/ui-spice-app.so
|
|
rm -rf %{buildroot}%{_libdir}/%{name}/ui-spice-core.so
|
|
%endif
|
|
|
|
rm -rf %{buildroot}%{_libexecdir}/vhost-user-gpu
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/vhost-user/50-qemu-gpu.json
|
|
%ifarch ppc64le
|
|
%endif
|
|
|
|
%if %{with rbd}
|
|
strip %{buildroot}%{_libdir}/%{name}/block-rbd.so
|
|
%endif
|
|
strip %{buildroot}%{_libdir}/%{name}/block-iscsi.so
|
|
strip %{buildroot}%{_libdir}/%{name}/block-curl.so
|
|
strip %{buildroot}%{_libdir}/%{name}/block-ssh.so
|
|
strip %{buildroot}%{_libdir}/%{name}/hw-usb-host.so
|
|
|
|
for f in %{buildroot}%{_bindir}/* %{buildroot}%{_libdir}/* \
|
|
%{buildroot}%{_libexecdir}/*; do
|
|
if file $f | grep -q ELF | grep -q -i shared; then chrpath --delete $f; fi
|
|
done
|
|
|
|
%check
|
|
echo "#define CONFIG_DISABLE_QEMU_LOG" >> build/config-host.h
|
|
make %{?_smp_mflags} $buildldflags V=1
|
|
make check V=1 %{?_smp_mflags}
|
|
|
|
%pre
|
|
getent group kvm >/dev/null || groupadd -g 36 -r kvm
|
|
getent group qemu >/dev/null || groupadd -g 107 -r qemu
|
|
getent passwd qemu >/dev/null || \
|
|
useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \
|
|
-c "qemu user" qemu
|
|
|
|
%post guest-agent
|
|
%systemd_post qemu-guest-agent.service
|
|
%preun guest-agent
|
|
%systemd_preun qemu-guest-agent.service
|
|
%postun guest-agent
|
|
%systemd_postun_with_restart qemu-guest-agent.service
|
|
|
|
%files -f %{name}.lang
|
|
%dir %{_datadir}/%{name}/
|
|
%{_libexecdir}/qemu-kvm
|
|
%{_bindir}/qemu-kvm
|
|
%{_libdir}/%{name}/accel-qtest-*.so
|
|
%ifarch x86_64
|
|
%{_libdir}/%{name}/accel-tcg-*.so
|
|
%{_libdir}/%{name}/hw-display-virtio-vga-gl.so
|
|
%{_libdir}/%{name}/hw-display-virtio-vga.so
|
|
%endif
|
|
|
|
%{_libdir}/%{name}/hw-display-virtio-gpu-gl.so
|
|
%{_libdir}/%{name}/hw-display-virtio-gpu-pci-gl.so
|
|
%{_libdir}/%{name}/hw-display-virtio-gpu-pci.so
|
|
%{_libdir}/%{name}/hw-display-virtio-gpu.so
|
|
%{_libdir}/%{name}/audio-dbus.so
|
|
%{_libdir}/%{name}/ui-dbus.so
|
|
%{_libdir}/%{name}/ui-egl-headless.so
|
|
%{_docdir}/%{name}/dbus-dbusindex.html
|
|
%{_datadir}/%{name}/vof-nvram.bin
|
|
%{_datadir}/%{name}/vof.bin
|
|
%{_datadir}/%{name}/efi-virtio.rom
|
|
%{_datadir}/%{name}/efi-e1000.rom
|
|
%{_datadir}/%{name}/efi-e1000e.rom
|
|
%{_datadir}/%{name}/efi-rtl8139.rom
|
|
%{_datadir}/%{name}/efi-pcnet.rom
|
|
%{_datadir}/%{name}/efi-ne2k_pci.rom
|
|
%{_datadir}/%{name}/efi-eepro100.rom
|
|
%{_datadir}/%{name}/efi-vmxnet3.rom
|
|
%{_datadir}/%{name}/pxe-virtio.rom
|
|
%{_datadir}/%{name}/pxe-e1000.rom
|
|
%{_datadir}/%{name}/pxe-ne2k_pci.rom
|
|
%{_datadir}/%{name}/pxe-pcnet.rom
|
|
%{_datadir}/%{name}/pxe-rtl8139.rom
|
|
%{_datadir}/%{name}/pxe-eepro100.rom
|
|
%{_datadir}/%{name}/qboot.rom
|
|
%{_datadir}/%{name}/trace-events-all
|
|
%{_datadir}/applications/qemu.desktop
|
|
%{_datadir}/icons/hicolor/*/apps/*
|
|
%{_datadir}/%{name}/keymaps/
|
|
%{_bindir}/elf2dmp
|
|
%{_bindir}/qemu-edid
|
|
%{_bindir}/qemu-keymap
|
|
%{_bindir}/qemu-pr-helper
|
|
%{_libexecdir}/virtfs-proxy-helper
|
|
%{_unitdir}/qemu-pr-helper.service
|
|
%{_unitdir}/qemu-pr-helper.socket
|
|
%attr(4755, root, root) %{_libexecdir}/qemu-bridge-helper
|
|
%config(noreplace) %{_sysconfdir}/sasl2/qemu.conf
|
|
%dir %{_sysconfdir}/qemu
|
|
%config(noreplace) %{_sysconfdir}/qemu/bridge.conf
|
|
/usr/lib/udev/rules.d/80-kvm.rules
|
|
%doc %{qemudocdir}/COPYING
|
|
%doc %{qemudocdir}/COPYING.LIB
|
|
%doc %{qemudocdir}/LICENSE
|
|
%ifarch x86_64
|
|
%{_datadir}/%{name}/bios.bin
|
|
%{_datadir}/%{name}/bios-256k.bin
|
|
%{_datadir}/%{name}/vgabios.bin
|
|
%{_datadir}/%{name}/vgabios-cirrus.bin
|
|
%{_datadir}/%{name}/vgabios-qxl.bin
|
|
%{_datadir}/%{name}/vgabios-stdvga.bin
|
|
%{_datadir}/%{name}/vgabios-vmware.bin
|
|
%{_datadir}/%{name}/vgabios-virtio.bin
|
|
%{_datadir}/%{name}/vgabios-ramfb.bin
|
|
%{_datadir}/%{name}/vgabios-bochs-display.bin
|
|
%{_datadir}/%{name}/linuxboot.bin
|
|
%{_datadir}/%{name}/linuxboot_dma.bin
|
|
%{_datadir}/%{name}/pvh.bin
|
|
%{_datadir}/%{name}/multiboot.bin
|
|
%{_datadir}/%{name}/multiboot_dma.bin
|
|
%{_datadir}/%{name}/kvmvapic.bin
|
|
%endif
|
|
|
|
|
|
%files system-aarch64
|
|
%{_bindir}/qemu-system-aarch64
|
|
|
|
%files system-arm
|
|
%{_bindir}/qemu-system-arm
|
|
%{_datadir}/%{name}/npcm7xx_bootrom.bin
|
|
|
|
%files system-x86_64
|
|
%{_bindir}/qemu-system-x86_64
|
|
%ifnarch x86_64
|
|
%{_libdir}/%{name}/accel-tcg-*.so
|
|
%{_libdir}/%{name}/hw-display-virtio-vga-gl.so
|
|
%{_libdir}/%{name}/hw-display-virtio-vga.so
|
|
%{_datadir}/%{name}/bios.bin
|
|
%{_datadir}/%{name}/bios-256k.bin
|
|
%{_datadir}/%{name}/vgabios.bin
|
|
%{_datadir}/%{name}/vgabios-cirrus.bin
|
|
%{_datadir}/%{name}/vgabios-qxl.bin
|
|
%{_datadir}/%{name}/vgabios-stdvga.bin
|
|
%{_datadir}/%{name}/vgabios-vmware.bin
|
|
%{_datadir}/%{name}/vgabios-virtio.bin
|
|
%{_datadir}/%{name}/vgabios-ramfb.bin
|
|
%{_datadir}/%{name}/vgabios-bochs-display.bin
|
|
%{_datadir}/%{name}/linuxboot.bin
|
|
%{_datadir}/%{name}/linuxboot_dma.bin
|
|
%{_datadir}/%{name}/pvh.bin
|
|
%{_datadir}/%{name}/multiboot.bin
|
|
%{_datadir}/%{name}/multiboot_dma.bin
|
|
%{_datadir}/%{name}/kvmvapic.bin
|
|
%endif
|
|
|
|
%ifarch ppc64le
|
|
%files system-ppc64
|
|
%{_bindir}/qemu-system-ppc64
|
|
%{_datadir}/%{name}/slof.bin
|
|
%{_datadir}/%{name}/skiboot.lid
|
|
%endif
|
|
|
|
%files system-riscv
|
|
%{_bindir}/qemu-system-riscv32
|
|
%{_bindir}/qemu-system-riscv64
|
|
%{_datadir}/%{name}/opensbi-riscv32-generic-fw_dynamic.*
|
|
%{_datadir}/%{name}/opensbi-riscv64-generic-fw_dynamic.*
|
|
%ifnarch ppc64le
|
|
%endif
|
|
|
|
%ifarch loongarch64
|
|
%files system-loongarch64
|
|
%{_bindir}/qemu-system-loongarch64
|
|
%{_libdir}/%{name}/audio-oss.so
|
|
%{_libdir}/%{name}/ui-curses.so
|
|
%{_libdir}/%{name}/ui-gtk.so
|
|
%{_libdir}/%{name}/audio-spice.so
|
|
%{_libdir}/%{name}/chardev-spice.so
|
|
%{_libdir}/%{name}/hw-display-qxl.so
|
|
%{_libdir}/%{name}/hw-s390x-virtio-gpu-ccw.so
|
|
%{_libdir}/%{name}/hw-usb-redirect.so
|
|
%{_libdir}/%{name}/ui-opengl.so
|
|
%{_libdir}/%{name}/ui-spice-app.so
|
|
%{_libdir}/%{name}/ui-spice-core.so
|
|
%endif
|
|
|
|
%ifnarch loongarch64
|
|
%endif
|
|
|
|
%files help
|
|
%dir %{qemudocdir}
|
|
%doc %{qemudocdir}/about
|
|
%doc %{qemudocdir}/devel
|
|
%doc %{qemudocdir}/interop
|
|
%doc %{qemudocdir}/search*
|
|
%doc %{qemudocdir}/_static
|
|
%doc %{qemudocdir}/system
|
|
%doc %{qemudocdir}/tools
|
|
%doc %{qemudocdir}/user
|
|
%doc %{qemudocdir}/README.rst
|
|
%{_mandir}/man1/qemu.1*
|
|
%{_mandir}/man1/qemu-img.1*
|
|
%{_mandir}/man1/qemu-storage-daemon.1*
|
|
%{_mandir}/man1/virtfs-proxy-helper.1*
|
|
%{_mandir}/man7/qemu-block-drivers.7*
|
|
%{_mandir}/man7/qemu-cpu-models.7*
|
|
%{_mandir}/man7/qemu-ga-ref.7*
|
|
%{_mandir}/man7/qemu-qmp-ref.7*
|
|
%{_mandir}/man7/qemu-storage-daemon-qmp-ref.7*
|
|
%{_mandir}/man8/qemu-ga.8*
|
|
%{_mandir}/man8/qemu-nbd.8*
|
|
%{_mandir}/man8/qemu-pr-helper.8*
|
|
|
|
|
|
%files guest-agent
|
|
%defattr(-,root,root,-)
|
|
%{_bindir}/qemu-ga
|
|
%{_unitdir}/qemu-guest-agent.service
|
|
%{_udevdir}/99-qemu-guest-agent.rules
|
|
%ghost %{_localstatedir}/log/qga-fsfreeze-hook.log
|
|
|
|
%files img
|
|
%{_bindir}/qemu-img
|
|
%{_bindir}/qemu-io
|
|
%{_bindir}/qemu-nbd
|
|
%{_bindir}/qemu-storage-daemon
|
|
|
|
%if %{with rbd}
|
|
%files block-rbd
|
|
%{_libdir}/%{name}/block-rbd.so
|
|
%endif
|
|
|
|
%files block-ssh
|
|
%{_libdir}/%{name}/block-ssh.so
|
|
|
|
%files block-iscsi
|
|
%{_libdir}/%{name}/block-iscsi.so
|
|
|
|
%files block-curl
|
|
%{_libdir}/%{name}/block-curl.so
|
|
|
|
%files hw-usb-host
|
|
%{_libdir}/%{name}/hw-usb-host.so
|
|
|
|
%ifarch %{ix86} x86_64
|
|
%files seabios
|
|
%{_datadir}/%{name}/bios-256k.bin
|
|
%{_datadir}/%{name}/bios.bin
|
|
%endif
|
|
|
|
%changelog
|
|
* Sat Mar 27 2024 Jiabo Feng <fengjiabo1@huawei.com> - 11:8.2.0-2
|
|
- block: bugfix: Don't pause vm when NOSPACE EIO happened
|
|
- block: enable cache mode of empty cdrom
|
|
- block/mirror: fix file-system went to read-only after block-mirror
|
|
- scsi-bus: fix incorrect call for blk_error_retry_reset_timeout()
|
|
- scsi-bus: fix unmatched object_unref()
|
|
- block: Add sanity check when setting retry parameters
|
|
- block-backend: Stop retrying when draining
|
|
- scsi-disk: Add support for retry on errors
|
|
- scsi-bus: Refactor the code that retries requests
|
|
- virtio_blk: Add support for retry on errors
|
|
- block: Add error retry param setting
|
|
- block-backend: Add timeout support for retry
|
|
- block-backend: Enable retry action on errors
|
|
- block-backend: Add device specific retry callback
|
|
- block-backend: Introduce retry timer
|
|
- qapi/block-core: Add retry option for error action
|
|
- scsi: bugfix: fix division by zero
|
|
- scsi: cdrom: Fix crash after remote cdrom detached
|
|
- qemu-pr: fixed ioctl failed for multipath disk
|
|
- scsi-disk: define props in scsi_block_disk to avoid memleaks
|
|
- bugfix: fix possible memory leak
|
|
- bugfix: fix some illegal memory access and memory leak
|
|
- util/log: add CONFIG_DISABLE_QEMU_LOG macro
|
|
- log: Add some logs on VM runtime path
|
|
- bugfix: fix eventfds may double free when vm_id reused in ivshmem
|
|
- hw/display/macfb: Fix missing ERRP_GUARD() in macfb_nubus_realize()
|
|
- hw/cxl/cxl-host: Fix missing ERRP_GUARD() in cxl_fixed_memory_window_config()
|
|
- qemu-img create: 'cache' paramter only use for reg file image
|
|
- qemu-img: add qemu-img direct create
|
|
- qemu-img block: set zero flags only when discard_zeros of the block supported
|
|
- Revert "file-posix: Remove unused s->discard_zeroes"
|
|
- pcie_sriov: Validate NumVFs (CVE-2024-26327)
|
|
- hw/nvme: Use pcie_sriov_num_vfs() (CVE-2024-26328)
|
|
- hw/acpi/cpu: Use CPUState typedef
|
|
- target/i386/sev: Fix missing ERRP_GUARD() for error_prepend()
|
|
- virtio-gpu: remove needless condition
|
|
- hw/i2c/smbus_slave: Add object path on error prints
|
|
- vfio/pci: Ascend710 change to bar2 quirk
|
|
- vfio/pci: Ascend910 need 4Bytes quirk in bar0
|
|
- vfio/pci: Ascend710 need 4Bytes quirk in bar0
|
|
- vfio/pci: Ascend310 need 4Bytes quirk in bar4
|
|
- chardev/char-socket: Fix TLS io channels sending too much data to the backend
|
|
- i386/cpuid: Move leaf 7 to correct group
|
|
- i386/cpuid: Decrease cpuid_i when skipping CPUID leaf 1F
|
|
- i386/cpu: Mask with XCR0/XSS mask for FEAT_XSAVE_XCR0_HI and FEAT_XSAVE_XSS_HI leafs
|
|
- i386/cpu: Clear FEAT_XSAVE_XSS_LO/HI leafs when CPUID_EXT_XSAVE is not available
|
|
- blkio: Respect memory-alignment for bounce buffer allocations
|
|
- virtio-gpu: Correct virgl_renderer_resource_get_info() error check
|
|
- hw/usb: Style cleanup
|
|
- tests/qemu-iotests: resolved the problem that the 108 test cases in the container fail
|
|
|
|
* Thu Feb 29 2024 Tao Yang <yangtao286@huawei.com> - 11:8.2.0-1
|
|
- Package init
|