From 004912aac09c297141ef5a4978282ca92d6daa68 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Tue, 18 Jul 2023 23:37:46 +0300 Subject: [PATCH] Add RPM spec patches for 6.2-el8 and 7.2-el9 --- rpm/qemu-kvm-4.2-el7.spec.patch | 2 +- rpm/qemu-kvm-4.2-el8.spec.patch | 2 +- rpm/qemu-kvm-6.2-el8.spec.patch | 103 ++++++++++++++++++++++++++++++++ rpm/qemu-kvm-7.2-el9.spec.patch | 93 ++++++++++++++++++++++++++++ 4 files changed, 198 insertions(+), 2 deletions(-) create mode 100644 rpm/qemu-kvm-6.2-el8.spec.patch create mode 100644 rpm/qemu-kvm-7.2-el9.spec.patch diff --git a/rpm/qemu-kvm-4.2-el7.spec.patch b/rpm/qemu-kvm-4.2-el7.spec.patch index cd7f0dd4..dea317db 100644 --- a/rpm/qemu-kvm-4.2-el7.spec.patch +++ b/rpm/qemu-kvm-4.2-el7.spec.patch @@ -22,7 +22,7 @@ Name: qemu-kvm Version: 4.2.0 -Release: 29.vitastor%{?dist}.6 -+Release: 32.vitastor%{?dist}.6 ++Release: 34.vitastor%{?dist}.6 # Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped Epoch: 15 License: GPLv2 and GPLv2+ and CC-BY diff --git a/rpm/qemu-kvm-4.2-el8.spec.patch b/rpm/qemu-kvm-4.2-el8.spec.patch index f6692526..40e8d1eb 100644 --- a/rpm/qemu-kvm-4.2-el8.spec.patch +++ b/rpm/qemu-kvm-4.2-el8.spec.patch @@ -13,7 +13,7 @@ Name: qemu-kvm Version: 4.2.0 -Release: 29%{?dist}.6 -+Release: 32.vitastor%{?dist}.6 ++Release: 33.vitastor%{?dist}.6 # Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped Epoch: 15 License: GPLv2 and GPLv2+ and CC-BY diff --git a/rpm/qemu-kvm-6.2-el8.spec.patch b/rpm/qemu-kvm-6.2-el8.spec.patch new file mode 100644 index 00000000..8e0cc7a7 --- /dev/null +++ b/rpm/qemu-kvm-6.2-el8.spec.patch @@ -0,0 +1,103 @@ +--- qemu-kvm-6.2.spec.orig 2023-07-18 13:52:57.636625440 +0000 ++++ qemu-kvm-6.2.spec 2023-07-18 13:52:19.011683886 +0000 +@@ -73,6 +73,7 @@ Requires: %{name}-hw-usbredir = %{epoch} + %endif \ + Requires: %{name}-block-iscsi = %{epoch}:%{version}-%{release} \ + Requires: %{name}-block-rbd = %{epoch}:%{version}-%{release} \ ++Requires: %{name}-block-vitastor = %{epoch}:%{version}-%{release}\ + Requires: %{name}-block-ssh = %{epoch}:%{version}-%{release} + + # Macro to properly setup RHEL/RHEV conflict handling +@@ -83,7 +84,7 @@ Obsoletes: %1-rhev <= %{epoch}:%{version + Summary: QEMU is a machine emulator and virtualizer + Name: qemu-kvm + Version: 6.2.0 +-Release: 32%{?rcrel}%{?dist} ++Release: 32.vitastor%{?rcrel}%{?dist} + # Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped + Epoch: 15 + License: GPLv2 and GPLv2+ and CC-BY +@@ -122,6 +123,7 @@ Source37: tests_data_acpi_pc_SSDT.dimmpx + Source38: tests_data_acpi_q35_FACP.slic + Source39: tests_data_acpi_q35_SSDT.dimmpxm + Source40: tests_data_acpi_virt_SSDT.memhp ++Source41: qemu-vitastor.c + + Patch0001: 0001-redhat-Adding-slirp-to-the-exploded-tree.patch + Patch0005: 0005-Initial-redhat-build.patch +@@ -652,6 +654,7 @@ Patch255: kvm-scsi-protect-req-aiocb-wit + Patch256: kvm-dma-helpers-prevent-dma_blk_cb-vs-dma_aio_cancel-rac.patch + # For bz#2090990 - qemu crash with error scsi_req_unref(SCSIRequest *): Assertion `req->refcount > 0' failed or scsi_dma_complete(void *, int): Assertion `r->req.aiocb != NULL' failed [8.7.0] + Patch257: kvm-virtio-scsi-reset-SCSI-devices-from-main-loop-thread.patch ++Patch258: qemu-6.2-vitastor.patch + + BuildRequires: wget + BuildRequires: rpm-build +@@ -689,6 +692,7 @@ BuildRequires: libcurl-devel + BuildRequires: libssh-devel + BuildRequires: librados-devel + BuildRequires: librbd-devel ++BuildRequires: vitastor-client-devel + %if %{have_gluster} + # For gluster block driver + BuildRequires: glusterfs-api-devel +@@ -926,6 +930,14 @@ Install this package if you want to acce + using the rbd protocol. + + ++%package block-vitastor ++Summary: QEMU Vitastor block driver ++Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} ++ ++%description block-vitastor ++This package provides the additional Vitastor block driver for QEMU. ++ ++ + %package block-ssh + Summary: QEMU SSH block driver + Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} +@@ -979,6 +991,7 @@ This package provides usbredir support. + rm -fr slirp + mkdir slirp + %autopatch -p1 ++cp %{SOURCE41} ./block/vitastor.c + + %global qemu_kvm_build qemu_kvm_build + mkdir -p %{qemu_kvm_build} +@@ -994,7 +1007,7 @@ cp -f %{SOURCE40} tests/data/acpi/virt/S + # --build-id option is used for giving info to the debug packages. + buildldflags="VL_LDFLAGS=-Wl,--build-id" + +-%global block_drivers_list qcow2,raw,file,host_device,nbd,iscsi,rbd,blkdebug,luks,null-co,nvme,copy-on-read,throttle ++%global block_drivers_list qcow2,raw,file,host_device,nbd,iscsi,rbd,vitastor,blkdebug,luks,null-co,nvme,copy-on-read,throttle + + %if 0%{have_gluster} + %global block_drivers_list %{block_drivers_list},gluster +@@ -1149,9 +1162,7 @@ pushd %{qemu_kvm_build} + --firmwarepath=%{_prefix}/share/qemu-firmware \ + --meson="git" \ + --target-list="%{buildarch}" \ +- --block-drv-rw-whitelist=%{block_drivers_list} \ + --audio-drv-list= \ +- --block-drv-ro-whitelist=vmdk,vhdx,vpc,https,ssh \ + --with-coroutine=ucontext \ + --with-git=git \ + --tls-priority=@QEMU,SYSTEM \ +@@ -1197,6 +1208,7 @@ pushd %{qemu_kvm_build} + %endif + --enable-pie \ + --enable-rbd \ ++ --enable-vitastor \ + %if 0%{have_librdma} + --enable-rdma \ + %endif +@@ -1794,6 +1806,9 @@ sh %{_sysconfdir}/sysconfig/modules/kvm. + %files block-rbd + %{_libdir}/qemu-kvm/block-rbd.so + ++%files block-vitastor ++%{_libdir}/qemu-kvm/block-vitastor.so ++ + %files block-ssh + %{_libdir}/qemu-kvm/block-ssh.so + diff --git a/rpm/qemu-kvm-7.2-el9.spec.patch b/rpm/qemu-kvm-7.2-el9.spec.patch new file mode 100644 index 00000000..8bfba06b --- /dev/null +++ b/rpm/qemu-kvm-7.2-el9.spec.patch @@ -0,0 +1,93 @@ +--- qemu-kvm-7.2.spec.orig 2023-06-22 13:56:19.000000000 +0000 ++++ qemu-kvm-7.2.spec 2023-07-18 07:55:22.347090196 +0000 +@@ -100,8 +100,6 @@ + %endif + + %global target_list %{kvm_target}-softmmu +-%global block_drivers_rw_list qcow2,raw,file,host_device,nbd,iscsi,rbd,blkdebug,luks,null-co,nvme,copy-on-read,throttle,compress +-%global block_drivers_ro_list vdi,vmdk,vhdx,vpc,https + %define qemudocdir %{_docdir}/%{name} + %global firmwaredirs "%{_datadir}/qemu-firmware:%{_datadir}/ipxe/qemu:%{_datadir}/seavgabios:%{_datadir}/seabios" + +@@ -126,6 +124,7 @@ Requires: %{name}-device-usb-host = %{ep + Requires: %{name}-device-usb-redirect = %{epoch}:%{version}-%{release} \ + %endif \ + Requires: %{name}-block-rbd = %{epoch}:%{version}-%{release} \ ++Requires: %{name}-block-vitastor = %{epoch}:%{version}-%{release}\ + Requires: %{name}-audio-pa = %{epoch}:%{version}-%{release} + + # Since SPICE is removed from RHEL-9, the following Obsoletes: +@@ -148,7 +147,7 @@ Obsoletes: %{name}-block-ssh <= %{epoch} + Summary: QEMU is a machine emulator and virtualizer + Name: qemu-kvm + Version: 7.2.0 +-Release: 14%{?rcrel}%{?dist}%{?cc_suffix}.1 ++Release: 14.vitastor%{?rcrel}%{?dist}%{?cc_suffix}.1 + # Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped + # Epoch 15 used for RHEL 8 + # Epoch 17 used for RHEL 9 (due to release versioning offset in RHEL 8.5) +@@ -171,6 +170,7 @@ Source28: 95-kvm-memlock.conf + Source30: kvm-s390x.conf + Source31: kvm-x86.conf + Source36: README.tests ++Source37: qemu-vitastor.c + + + Patch0004: 0004-Initial-redhat-build.patch +@@ -418,6 +418,7 @@ Patch134: kvm-target-i386-Fix-BZHI-instr + Patch135: kvm-intel-iommu-fail-DEVIOTLB_UNMAP-without-dt-mode.patch + # For bz#2203745 - Disk detach is unsuccessful while the guest is still booting [rhel-9.2.0.z] + Patch136: kvm-acpi-pcihp-allow-repeating-hot-unplug-requests.patch ++Patch137: qemu-7.2-vitastor.patch + + %if %{have_clang} + BuildRequires: clang +@@ -449,6 +450,7 @@ BuildRequires: libcurl-devel + %if %{have_block_rbd} + BuildRequires: librbd-devel + %endif ++BuildRequires: vitastor-client-devel + # We need both because the 'stap' binary is probed for by configure + BuildRequires: systemtap + BuildRequires: systemtap-sdt-devel +@@ -642,6 +644,14 @@ using the rbd protocol. + %endif + + ++%package block-vitastor ++Summary: QEMU Vitastor block driver ++Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} ++ ++%description block-vitastor ++This package provides the additional Vitastor block driver for QEMU. ++ ++ + %package audio-pa + Summary: QEMU PulseAudio audio driver + Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} +@@ -719,6 +729,7 @@ This package provides usbredir support. + %prep + %setup -q -n qemu-%{version}%{?rcstr} + %autopatch -p1 ++cp %{SOURCE37} ./block/vitastor.c + + %global qemu_kvm_build qemu_kvm_build + mkdir -p %{qemu_kvm_build} +@@ -946,6 +957,7 @@ run_configure \ + %if %{have_block_rbd} + --enable-rbd \ + %endif ++ --enable-vitastor \ + %if %{have_librdma} + --enable-rdma \ + %endif +@@ -1426,6 +1438,9 @@ useradd -r -u 107 -g qemu -G kvm -d / -s + %files block-rbd + %{_libdir}/%{name}/block-rbd.so + %endif ++%files block-vitastor ++%{_libdir}/%{name}/block-vitastor.so ++ + %files audio-pa + %{_libdir}/%{name}/audio-pa.so +