Skip to content

Instantly share code, notes, and snippets.

@c3d
Created August 7, 2020 13:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save c3d/d52fde5d1631293fba27b1e531518b4d to your computer and use it in GitHub Desktop.
Save c3d/d52fde5d1631293fba27b1e531518b4d to your computer and use it in GitHub Desktop.
Patch for qemu-mini for RHEL
From 4291945bb7dadc29a4cfb8048e7c36e142bf1cd4 Mon Sep 17 00:00:00 2001
From: "Danilo C. L. de Paula" <ddepaula@redhat.com>
Date: Thu, 30 Jul 2020 14:14:20 -0400
Subject: [PATCH] Initial qemu-mini split
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
---
redhat/qemu-kvm.spec.template | 271 +++++++++++++++++++++-------------
1 file changed, 171 insertions(+), 100 deletions(-)
diff --git a/redhat/qemu-kvm.spec.template b/redhat/qemu-kvm.spec.template
index 60be4f0dba..e92dd132e9 100644
--- a/redhat/qemu-kvm.spec.template
+++ b/redhat/qemu-kvm.spec.template
@@ -395,6 +395,7 @@ rm -fr slirp
mkdir slirp
%autopatch -p1
mkdir qemu-kvm-build
+mkdir qemu-kvm-mini-build
%build
%global buildarch %{kvm_target}-softmmu
@@ -408,173 +409,207 @@ buildldflags="VL_LDFLAGS=-Wl,--build-id"
%global block_drivers_list %{block_drivers_list},gluster
%endif
-cd qemu-kvm-build
-../configure \
- --prefix="%{_prefix}" \
- --libdir="%{_libdir}" \
- --sysconfdir="%{_sysconfdir}" \
- --interp-prefix=%{_prefix}/qemu-%M \
- --localstatedir="%{_localstatedir}" \
- --docdir="%{qemudocdir}" \
- --libexecdir="%{_libexecdir}" \
- --extra-ldflags="-Wl,--build-id -Wl,-z,relro -Wl,-z,now" \
- --extra-cflags="%{optflags}" \
- --with-pkgversion="%{name}-%{version}-%{release}" \
- --with-confsuffix=/"%{name}" \
- --firmwarepath=%{_prefix}/share/qemu-firmware \
- --python=%{__python3} \
- --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=NORMAL \
+pushd qemu-kvm-build
+
+%define run_configure \\\
+ --prefix="%{_prefix}" \\\
+ --libdir="%{_libdir}" \\\
+ --sysconfdir="%{_sysconfdir}" \\\
+ --interp-prefix=%{_prefix}/qemu-%M \\\
+ --localstatedir="%{_localstatedir}" \\\
+ --docdir="%{qemudocdir}" \\\
+ --libexecdir="%{_libexecdir}" \\\
+ --extra-ldflags="-Wl,--build-id -Wl,-z,relro -Wl,-z,now" \\\
+ --extra-cflags="%{optflags}" \\\
+ --with-pkgversion="%{name}-%{version}-%{release}" \\\
+ --with-confsuffix=/"%{name}" \\\
+ --firmwarepath=%{_prefix}/share/qemu-firmware \\\
+ --python=%{__python3} \\\
+ --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=NORMAL
+
+%define disable_everything \\\
+ --disable-attr \\\
+ --disable-auth-pam \\\
+ --disable-avx2 \\\
+ --disable-avx512f \\\
+ --disable-bochs \\\
+ --disable-brlapi \\\
+ --disable-bsd-user \\\
+ --disable-bzip2 \\\
+ --disable-cap-ng \\\
+ --disable-capstone \\\
+ --disable-cloop \\\
+ --disable-cocoa \\\
+ --disable-coroutine-pool \\\
+ --disable-crypto-afalg \\\
+ --disable-curl \\\
+ --disable-curses \\\
+ --disable-debug-info \\\
+ --disable-debug-mutex \\\
+ --disable-debug-tcg \\\
+ --disable-dmg \\\
+ --disable-docs \\\
+ --disable-fdt \\\
+ --disable-gcrypt \\\
+ --disable-git-update \\\
+ --disable-glusterfs \\\
+ --disable-gnutls \\\
+ --disable-gtk \\\
+ --disable-guest-agent \\\
+ --disable-guest-agent-msi \\\
+ --disable-hax \\\
+ --disable-hvf \\\
+ --disable-iconv \\\
+ --disable-jemalloc \\\
+ --disable-kvm \\\
+ --disable-libiscsi \\\
+ --disable-libnfs \\\
+ --disable-libpmem \\\
+ --disable-libssh \\\
+ --disable-libusb \\\
+ --disable-libxml2 \\\
+ --disable-linux-aio \\\
+ --disable-linux-io-uring \\\
+ --disable-linux-user \\\
+ --disable-live-block-migration \\\
+ --disable-lzfse \\\
+ --disable-lzo \\\
+ --disable-malloc-trim \\\
+ --disable-membarrier \\\
+ --disable-modules \\\
+ --disable-module-upgrades \\\
+ --disable-mpath \\\
+ --disable-netmap \\\
+ --disable-nettle \\\
+ --disable-numa \\\
+ --disable-opengl \\\
+ --disable-parallels \\\
+ --disable-pie \\\
+ --disable-pvrdma \\\
+ --disable-qcow1 \\\
+ --disable-qed \\\
+ --disable-qom-cast-debug \\\
+ --disable-rbd \\\
+ --disable-rdma \\\
+ --disable-replication \\\
+ --disable-sanitizers \\\
+ --disable-sdl \\\
+ --disable-sdl-image \\\
+ --disable-seccomp \\\
+ --disable-sheepdog \\\
+ --disable-smartcard \\\
+ --disable-snappy \\\
+ --disable-sparse \\\
+ --disable-spice \\\
+ --disable-strip \\\
+ --disable-system \\\
+ --disable-tcg \\\
+ --disable-tcmalloc \\\
+ --disable-tools \\\
+ --disable-tpm \\\
+ --disable-usb-redir \\\
+ --disable-user \\\
+ --disable-vde \\\
+ --disable-vdi \\\
+ --disable-vhost-crypto \\\
+ --disable-vhost-kernel \\\
+ --disable-vhost-net \\\
+ --disable-vhost-scsi \\\
+ --disable-vhost-user \\\
+ --disable-vhost-vsock \\\
+ --disable-virglrenderer \\\
+ --disable-virtfs \\\
+ --disable-vnc \\\
+ --disable-vnc-jpeg \\\
+ --disable-vnc-png \\\
+ --disable-vnc-sasl \\\
+ --disable-vte \\\
+ --disable-vvfat \\\
+ --disable-vxhs \\\
+ --disable-werror \\\
+ --disable-whpx \\\
+ --disable-xen \\\
+ --disable-xen-pci-passthrough \\\
+ --disable-xfsctl \\\
+ --disable-xkbcommon
+
+../configure \
+ %{run_configure} \
+ %{disable_everything} \
--enable-attr \
- --disable-auth-pam \
%ifarch %{ix86} x86_64
--enable-avx2 \
-%else
- --disable-avx2 \
%endif
- --disable-avx512f \
- --disable-bochs \
- --disable-brlapi \
- --disable-bsd-user \
- --disable-bzip2 \
--enable-cap-ng \
--enable-capstone \
- --disable-cloop \
- --disable-cocoa \
--enable-coroutine-pool \
- --disable-crypto-afalg \
--enable-curl \
- --disable-curses \
--enable-debug-info \
- --disable-debug-mutex \
- --disable-debug-tcg \
- --disable-dmg \
--enable-docs \
%if 0%{have_fdt}
--enable-fdt \
-%else
- --disable-fdt \
- %endif
+%endif
--enable-gcrypt \
- --disable-git-update \
%if 0%{have_gluster}
--enable-glusterfs \
-%else
- --disable-glusterfs \
%endif
--enable-gnutls \
- --disable-gtk \
--enable-guest-agent \
- --disable-guest-agent-msi \
- --disable-hax \
- --disable-hvf \
--enable-iconv \
- --disable-jemalloc \
--enable-kvm \
--enable-libiscsi \
- --disable-libnfs \
%ifarch x86_64
--enable-libpmem \
-%else
- --disable-libpmem \
%endif
--enable-libssh \
--enable-libusb \
- --disable-libxml2 \
--enable-linux-aio \
- --disable-linux-io-uring \
- --disable-linux-user \
- --disable-live-block-migration \
- --disable-lzfse \
--enable-lzo \
--enable-malloc-trim \
- --disable-membarrier \
--enable-modules \
- --disable-module-upgrades \
--enable-mpath \
- --disable-netmap \
- --disable-nettle \
%ifnarch s390x
--enable-numa \
-%else
- --disable-numa \
%endif
%if 0%{have_opengl}
--enable-opengl \
-%else
- --disable-opengl \
%endif
- --disable-parallels \
--enable-pie \
- --disable-pvrdma \
- --disable-qcow1 \
- --disable-qed \
- --disable-qom-cast-debug \
--enable-rbd \
%if 0%{have_librdma}
--enable-rdma \
-%else
- --disable-rdma \
%endif
- --disable-replication \
- --disable-sanitizers \
- --disable-sdl \
- --disable-sdl-image \
--enable-seccomp \
- --disable-sheepdog \
--enable-snappy \
- --disable-sparse \
%if 0%{have_spice}
--enable-smartcard \
--enable-spice \
-%else
- --disable-smartcard \
- --disable-spice \
%endif
- --disable-strip \
--enable-system \
--enable-tcg \
- --disable-tcmalloc \
--enable-tools \
--enable-tpm \
--enable-trace-backend=dtrace \
%if 0%{have_usbredir}
--enable-usb-redir \
-%else
- --disable-usb-redir \
%endif
- --disable-user \
- --disable-vde \
- --disable-vdi \
- --disable-vhost-crypto \
--enable-vhost-kernel \
--enable-vhost-net \
- --disable-vhost-scsi \
--enable-vhost-user \
--enable-vhost-vsock \
%if 0%{have_spice}
--enable-virglrenderer \
-%else
- --disable-virglrenderer \
%endif
- --disable-virtfs \
--enable-vnc \
- --disable-vnc-jpeg \
--enable-vnc-png \
--enable-vnc-sasl \
- --disable-vte \
- --disable-vvfat \
- --disable-vxhs \
--enable-werror \
- --disable-whpx \
- --disable-xen \
- --disable-xen-pci-passthrough \
- --disable-xfsctl \
--enable-xkbcommon \
--without-default-devices
@@ -585,6 +620,7 @@ echo "==="
make V=1 %{?_smp_mflags} $buildldflags
+final_build_checks() {
# Setup back compat qemu-kvm binary
%{__python3} scripts/tracetool.py --backend dtrace --format stap \
--group=all --binary %{_libexecdir}/qemu-kvm --probe-prefix qemu.kvm \
@@ -602,6 +638,41 @@ cp -a %{kvm_target}-softmmu/qemu-system-%{kvm_target} qemu-kvm
gcc %{SOURCE6} $RPM_OPT_FLAGS $RPM_LD_FLAGS -o ksmctl
gcc %{SOURCE35} $RPM_OPT_FLAGS $RPM_LD_FLAGS -o udev-kvm-check
+}
+final_build_checks
+
+# Generate qemu-kvm-mini
+popd
+pushd qemu-kvm-mini-build
+
+../configure \
+ %{run_configure} \
+ %{disable_everything} \
+ --target-list="%{kvm_target}-softmmu" \
+ --enable-kvm \
+ --enable-system \
+ --enable-virtfs \
+ --enable-cap-ng \
+ --enable-attr \
+ --enable-vhost-vsock \
+ --enable-vhost-kernel \
+ --enable-vhost-net \
+ --enable-vhost-scsi \
+ --enable-linux-aio \
+ --enable-debug-info \
+ --enable-virtio-mini \
+%if 0%{have_fdt}
+ --enable-fdt \
+%endif
+
+echo "config-host.mak contents for qemu-kvm-mini:"
+echo "==="
+cat config-host.mak
+echo "==="
+
+make V=1 %{?_smp_mflags} $buildldflags
+
+final_build_checks
%install
cd qemu-kvm-build
--
2.25.4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment