From 4ed6cd1d4988206100adc8628410f328f0802656 Mon Sep 17 00:00:00 2001 From: Scott Little Date: Thu, 30 Mar 2023 16:10:27 -0400 Subject: [PATCH] Subdirectories 'virt/qemu virt/libvirt ' relocated to repo 'virt' Required all reviews in the topic: https://review.opendev.org/q/topic:virt-repo Testing: build-pkgs -c -a: pass build-pkgs -p libvirt,qemu: pass Story: 2010317 Task: 47780 Signed-off-by: Scott Little Change-Id: Ia6138b2042fb344de3c2dadd4ce18f78ac2bf7d2 Depends-On: If81d59698b97e27a8013b2a0b93e2fadc0186205 --- virt/libvirt/.gitignore | 6 - virt/libvirt/PKG-INFO | 16 - virt/libvirt/README | 37 - virt/libvirt/centos/build_srpm.data | 9 - virt/libvirt/centos/docker/Dockerfile | 44 - virt/libvirt/centos/libvirt.spec | 2186 ------- .../centos/stx-libvirt.stable_docker_image | 2 - ...001-STX-Customize-Debian-build-files.patch | 76 - virt/libvirt/debian/deb_patches/series | 1 - virt/libvirt/debian/docker/Dockerfile | 54 - virt/libvirt/debian/meta_data.yaml | 18 - ...ning-not-working-over-live-migration.patch | 35 - ...ing-set-group-read-permission-on-log.patch | 47 - ...TX-Drop-migration-poll-times-to-10mS.patch | 29 - .../0004-STX-DPDK-parms-handling.patch | 351 - ...xed-default-libvirtd-systemd-service.patch | 39 - ...md-dependencies-against-pmon.service.patch | 27 - ...cessing-memory-stats-if-balloon-info.patch | 35 - ...se-timeout-for-connecting-to-monitor.patch | 38 - ...iov-perform-limited-retry-on-netlink.patch | 163 - virt/libvirt/debian/patches/series | 9 - .../debian/stx-libvirt.stable_docker_image | 2 - virt/libvirt/libvirt/hooks/qemu | 70 - virt/libvirt/libvirt/libvirt.logrotate | 14 - virt/libvirt/libvirt/libvirt.lxc | 15 - virt/libvirt/libvirt/libvirt.qemu | 15 - virt/libvirt/libvirt/libvirt.uml | 15 - virt/qemu/.gitignore | 6 - virt/qemu/PKG-INFO | 19 - virt/qemu/README | 17 - virt/qemu/centos/build_srpm.data | 11 - virt/qemu/centos/files/80-kvm.rules | 1 - virt/qemu/centos/files/85-kvm.preset | 5 - virt/qemu/centos/files/95-kvm-memlock.conf | 10 - .../centos/files/99-qemu-guest-agent.rules | 2 - .../centos/files/README.rhel6-gpxe-source | 9 - virt/qemu/centos/files/bios-256k.bin | Bin 262144 -> 0 bytes virt/qemu/centos/files/bridge.conf | 1 - virt/qemu/centos/files/build_configure.sh | 117 - virt/qemu/centos/files/ksm.service | 13 - virt/qemu/centos/files/ksm.sysconfig | 4 - virt/qemu/centos/files/ksmctl.c | 77 - virt/qemu/centos/files/ksmtuned | 138 - virt/qemu/centos/files/ksmtuned.conf | 21 - virt/qemu/centos/files/ksmtuned.service | 12 - virt/qemu/centos/files/kvm-setup | 31 - virt/qemu/centos/files/kvm-setup.service | 14 - virt/qemu/centos/files/kvm.conf | 12 - virt/qemu/centos/files/qemu-ga.sysconfig | 19 - .../centos/files/qemu-guest-agent.service | 18 - virt/qemu/centos/files/qemu.binfmt | 17 - virt/qemu/centos/files/rhel6-e1000.rom | Bin 69120 -> 0 bytes virt/qemu/centos/files/rhel6-ne2k_pci.rom | Bin 54272 -> 0 bytes virt/qemu/centos/files/rhel6-pcnet.rom | Bin 54784 -> 0 bytes virt/qemu/centos/files/rhel6-rtl8139.rom | Bin 54272 -> 0 bytes virt/qemu/centos/files/rhel6-virtio.rom | Bin 53248 -> 0 bytes virt/qemu/centos/files/vhost.conf | 3 - virt/qemu/centos/qemu-kvm.spec | 5731 ----------------- ...Customize-Debian-build-files-for-STX.patch | 419 -- virt/qemu/debian/deb_patches/series | 1 - virt/qemu/debian/meta_data.yaml | 9 - ...Add-support-statement-to-help-output.patch | 63 - ...ion-thread-affinity-and-priority-qmp.patch | 272 - ...mu-dpdk-changes-for-openvswitch-dpdk.patch | 197 - ...TX-qemu-add-enable-dpdk-runtime-flag.patch | 53 - ...u-add-compile-define-for-CONFIG_DPDK.patch | 32 - .../debian/patches/0006-STX-add-libdl.patch | 41 - .../0007-STX-qemu-dpdk-custom-config.patch | 39 - ...ltime-uses-mlock-instead-of-mlockall.patch | 102 - ...end-Resume-for-VMs-with-PCIPT-Virtio.patch | 95 - ...ve-migration-auto-converge-threshold.patch | 32 - ...l-don-t-touch-virtqueue-if-vm-is-sto.patch | 41 - virt/qemu/debian/patches/series | 11 - virt/qemu/qemu/qemu-system-x86.conf | 1 - virt/qemu/qemu/qemu_clean | 41 - virt/qemu/qemu/qemu_clean.service | 14 - virt/qemu/scripts/autopatch.sh | 26 - 77 files changed, 11150 deletions(-) delete mode 100644 virt/libvirt/.gitignore delete mode 100644 virt/libvirt/PKG-INFO delete mode 100644 virt/libvirt/README delete mode 100644 virt/libvirt/centos/build_srpm.data delete mode 100644 virt/libvirt/centos/docker/Dockerfile delete mode 100644 virt/libvirt/centos/libvirt.spec delete mode 100644 virt/libvirt/centos/stx-libvirt.stable_docker_image delete mode 100644 virt/libvirt/debian/deb_patches/0001-STX-Customize-Debian-build-files.patch delete mode 100644 virt/libvirt/debian/deb_patches/series delete mode 100644 virt/libvirt/debian/docker/Dockerfile delete mode 100644 virt/libvirt/debian/meta_data.yaml delete mode 100644 virt/libvirt/debian/patches/0001-STX-CPU-pinning-not-working-over-live-migration.patch delete mode 100644 virt/libvirt/debian/patches/0002-STX-System-Logging-set-group-read-permission-on-log.patch delete mode 100644 virt/libvirt/debian/patches/0003-STX-Drop-migration-poll-times-to-10mS.patch delete mode 100644 virt/libvirt/debian/patches/0004-STX-DPDK-parms-handling.patch delete mode 100644 virt/libvirt/debian/patches/0005-STX-Fixed-default-libvirtd-systemd-service.patch delete mode 100644 virt/libvirt/debian/patches/0006-STX-Adding-systemd-dependencies-against-pmon.service.patch delete mode 100644 virt/libvirt/debian/patches/0007-STX-Stop-processing-memory-stats-if-balloon-info.patch delete mode 100644 virt/libvirt/debian/patches/0008-STX-Increase-timeout-for-connecting-to-monitor.patch delete mode 100644 virt/libvirt/debian/patches/0009-STX-pci-sriov-perform-limited-retry-on-netlink.patch delete mode 100644 virt/libvirt/debian/patches/series delete mode 100644 virt/libvirt/debian/stx-libvirt.stable_docker_image delete mode 100755 virt/libvirt/libvirt/hooks/qemu delete mode 100644 virt/libvirt/libvirt/libvirt.logrotate delete mode 100644 virt/libvirt/libvirt/libvirt.lxc delete mode 100644 virt/libvirt/libvirt/libvirt.qemu delete mode 100644 virt/libvirt/libvirt/libvirt.uml delete mode 100644 virt/qemu/.gitignore delete mode 100644 virt/qemu/PKG-INFO delete mode 100644 virt/qemu/README delete mode 100644 virt/qemu/centos/build_srpm.data delete mode 100644 virt/qemu/centos/files/80-kvm.rules delete mode 100644 virt/qemu/centos/files/85-kvm.preset delete mode 100644 virt/qemu/centos/files/95-kvm-memlock.conf delete mode 100644 virt/qemu/centos/files/99-qemu-guest-agent.rules delete mode 100644 virt/qemu/centos/files/README.rhel6-gpxe-source delete mode 100644 virt/qemu/centos/files/bios-256k.bin delete mode 100644 virt/qemu/centos/files/bridge.conf delete mode 100755 virt/qemu/centos/files/build_configure.sh delete mode 100644 virt/qemu/centos/files/ksm.service delete mode 100644 virt/qemu/centos/files/ksm.sysconfig delete mode 100644 virt/qemu/centos/files/ksmctl.c delete mode 100644 virt/qemu/centos/files/ksmtuned delete mode 100644 virt/qemu/centos/files/ksmtuned.conf delete mode 100644 virt/qemu/centos/files/ksmtuned.service delete mode 100644 virt/qemu/centos/files/kvm-setup delete mode 100644 virt/qemu/centos/files/kvm-setup.service delete mode 100644 virt/qemu/centos/files/kvm.conf delete mode 100644 virt/qemu/centos/files/qemu-ga.sysconfig delete mode 100644 virt/qemu/centos/files/qemu-guest-agent.service delete mode 100644 virt/qemu/centos/files/qemu.binfmt delete mode 100644 virt/qemu/centos/files/rhel6-e1000.rom delete mode 100644 virt/qemu/centos/files/rhel6-ne2k_pci.rom delete mode 100644 virt/qemu/centos/files/rhel6-pcnet.rom delete mode 100644 virt/qemu/centos/files/rhel6-rtl8139.rom delete mode 100644 virt/qemu/centos/files/rhel6-virtio.rom delete mode 100644 virt/qemu/centos/files/vhost.conf delete mode 100644 virt/qemu/centos/qemu-kvm.spec delete mode 100644 virt/qemu/debian/deb_patches/0001-Customize-Debian-build-files-for-STX.patch delete mode 100644 virt/qemu/debian/deb_patches/series delete mode 100644 virt/qemu/debian/meta_data.yaml delete mode 100644 virt/qemu/debian/patches/0001-STX-Add-support-statement-to-help-output.patch delete mode 100644 virt/qemu/debian/patches/0002-STX-migration-thread-affinity-and-priority-qmp.patch delete mode 100644 virt/qemu/debian/patches/0003-STX-qemu-dpdk-changes-for-openvswitch-dpdk.patch delete mode 100644 virt/qemu/debian/patches/0004-STX-qemu-add-enable-dpdk-runtime-flag.patch delete mode 100644 virt/qemu/debian/patches/0005-STX-qemu-add-compile-define-for-CONFIG_DPDK.patch delete mode 100644 virt/qemu/debian/patches/0006-STX-add-libdl.patch delete mode 100644 virt/qemu/debian/patches/0007-STX-qemu-dpdk-custom-config.patch delete mode 100644 virt/qemu/debian/patches/0008-STX-realtime-uses-mlock-instead-of-mlockall.patch delete mode 100644 virt/qemu/debian/patches/0009-STX-Suspend-Resume-for-VMs-with-PCIPT-Virtio.patch delete mode 100644 virt/qemu/debian/patches/0010-STX-Modify-live-migration-auto-converge-threshold.patch delete mode 100644 virt/qemu/debian/patches/0011-STX-virtio-serial-don-t-touch-virtqueue-if-vm-is-sto.patch delete mode 100644 virt/qemu/debian/patches/series delete mode 100644 virt/qemu/qemu/qemu-system-x86.conf delete mode 100644 virt/qemu/qemu/qemu_clean delete mode 100644 virt/qemu/qemu/qemu_clean.service delete mode 100755 virt/qemu/scripts/autopatch.sh diff --git a/virt/libvirt/.gitignore b/virt/libvirt/.gitignore deleted file mode 100644 index b93f29dce..000000000 --- a/virt/libvirt/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -!.distro -.distro/centos7/rpmbuild/RPMS -.distro/centos7/rpmbuild/SRPMS -.distro/centos7/rpmbuild/BUILD -.distro/centos7/rpmbuild/BUILDROOT -.distro/centos7/rpmbuild/SOURCES/libvirt*tar.gz diff --git a/virt/libvirt/PKG-INFO b/virt/libvirt/PKG-INFO deleted file mode 100644 index 3d4ac7c76..000000000 --- a/virt/libvirt/PKG-INFO +++ /dev/null @@ -1,16 +0,0 @@ -Metadata-Version: 1.1 -Name: libvirt -Version: 1.2.17 -Summary: Library providing a simple virtualization API -Home-page: -Author: Windriver -Author-email: info@windriver.com -License: Apache-2.0 - -Description: -Libvirt is a C toolkit to interact with the virtualization capabilities -of recent versions of Linux (and other OSes). The main package includes -the libvirtd server exporting the virtualization support. - - -Platform: UNKNOWN diff --git a/virt/libvirt/README b/virt/libvirt/README deleted file mode 100644 index a2b167b30..000000000 --- a/virt/libvirt/README +++ /dev/null @@ -1,37 +0,0 @@ -The Centos 7 libvirt source rpm was taken from: -http://vault.centos.org/centos/7/updates/Source/SPackages/libvirt-1.2.17-13.el7_2.3.src.rpm - -It's possible to resolve the source rpm based on the yum repos: -$ yumdownloader --source --urls libvirt - -The libvirt source code was forked under .../cgcs/git/libvirt. -Notes: - The branch is based on upstream tag v1.2.17-maint. - - Then each RedHat patches have been committed one by one in the same - order specified in the RedHat spec (actually this was automated to use - 'git am' for each of the patches mentionned in the spec). - - The last patch from RedHat is tagged 'libvirt-1.2.17-13.el7_2.3'. - - After this tag, all the patches are port from R2. - -The libvirt git repository doesn't come with the ./configure script (and its -dependancies). This has to be built using autoconf (but the libvirt releases -comes with those, releases are generated using 'make dist'). - -One caveat is that bootstrap is made to be executed in a git tree. Trying to -execute it out of tree, like the Centos build environment, was unsuccessfull -so far. - -The current workaround for now is to commit the configure scripts in the -libvirt git repo: - -$ NOCONFIGURE=1 ./autogen.sh --copy -$ NOCONFIGURE=1 ./autogen.sh --copy -# Remove all .gitignore temporarily for showing modified files -$ find . -name .gitignore | xargs rm -$ git add -A -$ git reset HEAD .gitignore -# Repeat last command for all .gitignore files removed -$ git commit - -Autogen is executed twice. The first time soft links are created under -build-aux/. Running it a second time makes bootstrap copying them and -replacing the soft links (there is most likely a smarter way to do this). diff --git a/virt/libvirt/centos/build_srpm.data b/virt/libvirt/centos/build_srpm.data deleted file mode 100644 index d7b4442e4..000000000 --- a/virt/libvirt/centos/build_srpm.data +++ /dev/null @@ -1,9 +0,0 @@ -SRC_DIR="$CGCS_BASE/git/libvirt" -COPY_LIST="\ - libvirt/* \ - libvirt/hooks/* \ - $CGCS_BASE/downloads/gnulib-ffc927e.tar.gz \ - $CGCS_BASE/downloads/keycodemapdb-16e5b07.tar.gz" -TIS_BASE_SRCREV=ab58260efaa712650c63bb1917122f270070fa4b -TIS_PATCH_VER=GITREVCOUNT+PKG_GITREVCOUNT -BUILD_IS_SLOW=4 diff --git a/virt/libvirt/centos/docker/Dockerfile b/virt/libvirt/centos/docker/Dockerfile deleted file mode 100644 index 0f6360d1c..000000000 --- a/virt/libvirt/centos/docker/Dockerfile +++ /dev/null @@ -1,44 +0,0 @@ -# Expected build arguments: -# BASE: specify base layer -# REPO_OPTS: yum options to enable StarlingX repo -# -ARG BASE -FROM ${BASE} - -# Location of the STX repo config file, which will be parsed for enabling repos -ARG STX_REPO_FILE=/etc/yum.repos.d/stx.repo - -ARG PROJECT=nova -ARG UID=42424 -ARG GID=42424 - -RUN set -ex ;\ - yum install --disablerepo=* \ - $(grep '^name=' ${STX_REPO_FILE} | awk -F '=' '{printf "--enablerepo=" $2 " "}') \ - -y \ - ceph-common \ - dmidecode \ - ebtables \ - iproute \ - libcgroup-tools \ - libvirt \ - pm-utils \ - qemu \ - qemu-block-extra \ - qemu-efi \ - qemu-kvm-ev \ - qemu-kvm-tools-ev \ - perl-Error \ - perl-Data-Dumper \ - perl-TermReadKey \ - openvswitch ;\ - groupadd -g ${GID} ${PROJECT} ;\ - useradd -u ${UID} -g ${PROJECT} -M -d /var/lib/${PROJECT} -s /usr/sbin/nologin -c "${PROJECT} user" ${PROJECT} ;\ - mkdir -p /etc/${PROJECT} /var/log/${PROJECT} /var/lib/${PROJECT} /var/cache/${PROJECT} ;\ - chown ${PROJECT}:${PROJECT} /etc/${PROJECT} /var/log/${PROJECT} /var/lib/${PROJECT} /var/cache/${PROJECT} ;\ - usermod -a -G kvm ${PROJECT} ;\ - rm -rf \ - /var/log/* \ - /tmp/* \ - /var/tmp/* - diff --git a/virt/libvirt/centos/libvirt.spec b/virt/libvirt/centos/libvirt.spec deleted file mode 100644 index 52255a8b7..000000000 --- a/virt/libvirt/centos/libvirt.spec +++ /dev/null @@ -1,2186 +0,0 @@ -# -*- rpm-spec -*- - -# This spec file assumes you are building on a Fedora or RHEL version -# that's still supported by the vendor: that means Fedora 23 or newer, -# or RHEL 6 or newer. It may need some tweaks for other distros. -# If neither fedora nor rhel was defined, try to guess them from dist -%if (0%{?fedora} && 0%{?fedora} >= 23) || (0%{?rhel} && 0%{?rhel} >= 6) - %define supported_platform 1 -%else - %define supported_platform 0 -%endif - -# Default to skipping autoreconf. Distros can change just this one line -# (or provide a command-line override) if they backport any patches that -# touch configure.ac or Makefile.am. -# Always run autoreconf -%{!?enable_autotools:%global enable_autotools 1} - -# STX: Custom build config. Based on the R2/bitbake configure line. -%define _without_esx 1 -%define _without_hyperv 1 -%define _without_libxl 1 -%define _without_vbox 1 -%define _without_vmware 1 -%define _without_xen 1 -%define _without_xenapi 1 -%define _without_phyp 1 -%define _without_openvz 1 -%define _without_numad 1 -%define _without_capng 1 -%define _without_polkit 1 -%define _without_sasl 1 -%define _without_dtrace 1 -%define _without_avahi 1 - -# The hypervisor drivers that run in libvirtd -%define with_xen 0%{!?_without_xen:1} -%define with_qemu 0%{!?_without_qemu:1} -%define with_lxc 0%{!?_without_lxc:1} -%define with_uml 0%{!?_without_uml:1} -%define with_libxl 0%{!?_without_libxl:1} -%define with_vbox 0%{!?_without_vbox:1} - -%define with_qemu_tcg %{with_qemu} - -%define qemu_kvm_arches %{ix86} x86_64 - -%if 0%{?fedora} - %define qemu_kvm_arches %{ix86} x86_64 %{power64} s390x %{arm} aarch64 -%endif - -%if 0%{?rhel} - %define with_qemu_tcg 0 - %define qemu_kvm_arches x86_64 - %if 0%{?rhel} >= 7 - %define qemu_kvm_arches x86_64 %{power64} aarch64 - %endif -%endif - -%ifarch %{qemu_kvm_arches} - %define with_qemu_kvm %{with_qemu} -%else - %define with_qemu_kvm 0 -%endif - -%if ! %{with_qemu_tcg} && ! %{with_qemu_kvm} - %define with_qemu 0 -%endif - -# Then the hypervisor drivers that run outside libvirtd, in libvirt.so -%define with_openvz 0%{!?_without_openvz:1} -%define with_vmware 0%{!?_without_vmware:1} -%define with_phyp 0%{!?_without_phyp:1} -%define with_esx 0%{!?_without_esx:1} -%define with_hyperv 0%{!?_without_hyperv:1} - -# Then the secondary host drivers, which run inside libvirtd -%if 0%{?fedora} || 0%{?rhel} >= 7 - %define with_storage_rbd 0%{!?_without_storage_rbd:1} -%else - %define with_storage_rbd 0 -%endif -%if 0%{?fedora} - %define with_storage_sheepdog 0%{!?_without_storage_sheepdog:1} -%else - %define with_storage_sheepdog 0 -%endif -%define with_storage_gluster 0%{!?_without_storage_gluster:1} -%define with_numactl 0%{!?_without_numactl:1} - -# A few optional bits off by default, we enable later -%define with_fuse 0%{!?_without_fuse:0} -%define with_cgconfig 0%{!?_without_cgconfig:0} -%define with_sanlock 0%{!?_without_sanlock:0} -%define with_systemd 0%{!?_without_systemd:0} -%define with_numad 0%{!?_without_numad:0} -%define with_firewalld 0%{!?_without_firewalld:0} -%define with_libssh2 0%{!?_without_libssh2:0} -%define with_wireshark 0%{!?_without_wireshark:0} -%define with_libssh 0%{!?_without_libssh:0} -%define with_bash_completion 0%{!?_without_bash_completion:0} -%define with_pm_utils 1 - -# Finally set the OS / architecture specific special cases - -# Xen is available only on i386 x86_64 ia64 -%ifnarch %{ix86} x86_64 ia64 - %define with_xen 0 - %define with_libxl 0 -%endif - -# vbox is available only on i386 x86_64 -%ifnarch %{ix86} x86_64 - %define with_vbox 0 -%endif - -# Numactl is not available on s390[x] and ARM -%ifarch s390 s390x %{arm} - %define with_numactl 0 -%endif - -# libgfapi is built only on x86_64 on rhel -%ifnarch x86_64 - %if 0%{?rhel} - %define with_storage_gluster 0 - %endif -%endif - -# librados and librbd are built only on x86_64 on rhel -%ifnarch x86_64 - %if 0%{?rhel} >= 7 - %define with_storage_rbd 0 - %endif -%endif - -# RHEL doesn't ship OpenVZ, VBox, UML, PowerHypervisor, -# VMware, libxenserver (xenapi), libxenlight (Xen 4.1 and newer), -# or HyperV. -%if 0%{?rhel} - %define with_openvz 0 - %define with_vbox 0 - %define with_uml 0 - %define with_phyp 0 - %define with_vmware 0 - %define with_xenapi 0 - %define with_libxl 0 - %define with_hyperv 0 - %define with_vz 0 -%endif - -# Fedora 17 / RHEL-7 are first where we use systemd. Although earlier -# Fedora has systemd, libvirt still used sysvinit there. -%if 0%{?fedora} || 0%{?rhel} >= 7 - %define with_systemd 1 - %define with_pm_utils 0 -%endif - -# Fedora 18 / RHEL-7 are first where firewalld support is enabled -%if 0%{?fedora} || 0%{?rhel} >= 7 - %define with_firewalld 1 -%endif - -# RHEL-6 stopped including Xen on all archs. -%if 0%{?rhel} - %define with_xen 0 -%endif - -# fuse is used to provide virtualized /proc for LXC -%if 0%{?fedora} || 0%{?rhel} >= 7 - %define with_fuse 0%{!?_without_fuse:1} -%endif - -# Enable sanlock library for lock management with QEMU -# Sanlock is available only on arches where kvm is available for RHEL -%if 0%{?fedora} - %define with_sanlock 0%{!?_without_sanlock:1} -%endif -%if 0%{?rhel} - %ifarch %{qemu_kvm_arches} - %define with_sanlock 0%{!?_without_sanlock:1} - %endif -%endif - -# Enable libssh2 transport for new enough distros -%if 0%{?fedora} - %define with_libssh2 0%{!?_without_libssh2:1} -%endif - -# Enable wireshark plugins for all distros shipping libvirt 1.2.2 or newer -%if 0%{?fedora} - %define with_wireshark 0%{!?_without_wireshark:1} -%endif - -# Enable libssh transport for new enough distros -%if 0%{?fedora} - %define with_libssh 0%{!?_without_libssh:1} -%endif - -%define with_bash_completion 0%{!?_without_bash_completion:1} - -%if %{with_qemu} || %{with_lxc} || %{with_uml} -# numad is used to manage the CPU and memory placement dynamically, -# it's not available on s390[x] and ARM. - %ifnarch s390 s390x %{arm} - %define with_numad 0%{!?_without_numad:1} - %endif -%endif - -# Pull in cgroups config system -%if %{with_qemu} || %{with_lxc} - %define with_cgconfig 0%{!?_without_cgconfig:1} -%endif - -# Force QEMU to run as non-root -%define qemu_user qemu -%define qemu_group qemu - - -%if 0%{?fedora} || 0%{?rhel} >= 7 - %define with_systemd_macros 1 -%else - %define with_systemd_macros 0 -%endif - - -# RHEL releases provide stable tool chains and so it is safe to turn -# compiler warning into errors without being worried about frequent -# changes in reported warnings -%if 0%{?rhel} - %define enable_werror --enable-werror -%else - %define enable_werror --disable-werror -%endif - -%if 0%{?fedora} >= 25 - %define tls_priority "@LIBVIRT,SYSTEM" -%else - %if 0%{?fedora} - %define tls_priority "@SYSTEM" - %else - %define tls_priority "NORMAL" - %endif -%endif - - -Summary: Library providing a simple virtualization API -Name: libvirt -Version: 4.7.0 -Release: 1%{?_tis_dist}.%{tis_patch_ver} -License: LGPLv2+ -Group: Development/Libraries -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root -URL: https://libvirt.org/ - -%if %(echo %{version} | grep -q "\.0$"; echo $?) == 1 - %define mainturl stable_updates/ -%endif -Source0: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz -#Source1: symlinks - -# STX -Source2: libvirt.logrotate -Source3: libvirt.lxc -Source4: libvirt.qemu -Source5: libvirt.uml -Source6: gnulib-ffc927e.tar.gz -Source7: keycodemapdb-16e5b07.tar.gz -Source8: qemu - -Requires: libvirt-daemon = %{version}-%{release} -Requires: libvirt-daemon-config-network = %{version}-%{release} -Requires: libvirt-daemon-config-nwfilter = %{version}-%{release} -%if %{with_libxl} -Requires: libvirt-daemon-driver-libxl = %{version}-%{release} -%endif -%if %{with_lxc} -Requires: libvirt-daemon-driver-lxc = %{version}-%{release} -%endif -%if %{with_qemu} -Requires: libvirt-daemon-driver-qemu = %{version}-%{release} -%endif -%if %{with_uml} -Requires: libvirt-daemon-driver-uml = %{version}-%{release} -%endif -%if %{with_xen} -Requires: libvirt-daemon-driver-xen = %{version}-%{release} -%endif -%if %{with_vbox} -Requires: libvirt-daemon-driver-vbox = %{version}-%{release} -%endif -Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release} - -Requires: libvirt-daemon-driver-interface = %{version}-%{release} -Requires: libvirt-daemon-driver-secret = %{version}-%{release} -Requires: libvirt-daemon-driver-storage = %{version}-%{release} -Requires: libvirt-daemon-driver-network = %{version}-%{release} -Requires: libvirt-daemon-driver-nodedev = %{version}-%{release} -Requires: libvirt-client = %{version}-%{release} -Requires: libvirt-libs = %{version}-%{release} - -# All build-time requirements. Run-time requirements are -# listed against each sub-RPM -%if 0%{?enable_autotools} -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: gettext-devel -BuildRequires: libtool -BuildRequires: /usr/bin/pod2man -%endif -BuildRequires: git -BuildRequires: perl -BuildRequires: python -%if %{with_systemd} -BuildRequires: systemd-units -%endif -%if %{with_xen} || %{with_libxl} -BuildRequires: xen-devel -%endif -BuildRequires: libxml2-devel -BuildRequires: xhtml1-dtds -BuildRequires: libxslt -BuildRequires: readline-devel -%if %{with_bash_completion} -BuildRequires: bash-completion >= 2.0 -%endif -BuildRequires: ncurses-devel -BuildRequires: gettext -BuildRequires: libtasn1-devel -%if (0%{?rhel} && 0%{?rhel} < 7) -BuildRequires: libgcrypt-devel -%endif -BuildRequires: gnutls-devel -BuildRequires: libattr-devel -# For pool-build probing for existing pools -BuildRequires: libblkid-devel >= 2.17 -# for augparse, optionally used in testing -BuildRequires: augeas -%if 0%{?fedora} || 0%{?rhel} >= 7 -BuildRequires: systemd-devel >= 185 -%else -BuildRequires: libudev-devel >= 145 -%endif -BuildRequires: libpciaccess-devel >= 0.10.9 -BuildRequires: yajl-devel -%if %{with_sanlock} -BuildRequires: sanlock-devel >= 2.4 -%endif -BuildRequires: libpcap-devel -%if 0%{?rhel} && 0%{?rhel} < 7 -BuildRequires: libnl-devel -%else -BuildRequires: libnl3-devel -%endif -BuildRequires: avahi-devel -BuildRequires: libselinux-devel -BuildRequires: dnsmasq >= 2.41 -BuildRequires: iptables -%if 0%{?rhel} && 0%{?rhel} < 7 -BuildRequires: iptables-ipv6 -%endif -BuildRequires: radvd -BuildRequires: ebtables -BuildRequires: module-init-tools -BuildRequires: cyrus-sasl-devel -%if 0%{?fedora} || 0%{?rhel} >= 7 -# F22 polkit-devel doesn't pull in polkit anymore, which we need for pkcheck -BuildRequires: polkit >= 0.112 -BuildRequires: polkit-devel >= 0.112 -%else -BuildRequires: polkit-devel >= 0.93 -%endif -# For mount/umount in FS driver -BuildRequires: util-linux -%if %{with_qemu} -# For managing ACLs -BuildRequires: libacl-devel -# From QEMU RPMs -BuildRequires: /usr/bin/qemu-img -%else - %if %{with_xen} -# From Xen RPMs -BuildRequires: /usr/sbin/qcow-create - %endif -%endif -# For LVM drivers -BuildRequires: lvm2 -# For ISCSI driver -BuildRequires: iscsi-initiator-utils -# For disk driver -BuildRequires: parted-devel -# For Multipath support -BuildRequires: device-mapper-devel -%if %{with_storage_rbd} - %if 0%{?fedora} || 0%{?rhel} >= 7 -BuildRequires: librados2-devel -BuildRequires: librbd1-devel - %else -BuildRequires: ceph-devel - %endif -%endif -%if %{with_storage_gluster} -BuildRequires: glusterfs-api-devel >= 3.4.1 -BuildRequires: glusterfs-devel >= 3.4.1 -%endif -%if %{with_storage_sheepdog} -BuildRequires: sheepdog -%endif -%if %{with_numactl} -# For QEMU/LXC numa info -BuildRequires: numactl-devel -%endif -BuildRequires: libcap-ng-devel >= 0.5.0 -%if %{with_fuse} -BuildRequires: fuse-devel >= 2.8.6 -%endif -%if %{with_phyp} || %{with_libssh2} -BuildRequires: libssh2-devel >= 1.3.0 -%endif - -%if 0%{?fedora} || 0%{?rhel} >= 7 -BuildRequires: netcf-devel >= 0.2.2 -%else -BuildRequires: netcf-devel >= 0.1.8 -%endif -%if %{with_esx} -BuildRequires: libcurl-devel -%endif -%if %{with_hyperv} -BuildRequires: libwsman-devel >= 2.2.3 -%endif -BuildRequires: audit-libs-devel -# we need /usr/sbin/dtrace -BuildRequires: systemtap-sdt-devel - -# For mount/umount in FS driver -BuildRequires: util-linux -# For showmount in FS driver (netfs discovery) -BuildRequires: nfs-utils - -# Communication with the firewall and polkit daemons use DBus -BuildRequires: dbus-devel - -# Fedora build root suckage -BuildRequires: gawk - -# For storage wiping with different algorithms -BuildRequires: scrub - -%if %{with_numad} -BuildRequires: numad -%endif - -%if %{with_wireshark} - %if 0%{fedora} >= 24 -BuildRequires: wireshark-devel >= 2.1.0 - %else -BuildRequires: wireshark-devel >= 1.12.1 - %endif -%endif - -%if %{with_libssh} -BuildRequires: libssh-devel >= 0.7.0 -%endif - -# STX: For generating configure -BuildRequires: gnulib -# STX: Needed by bootstrap -BuildRequires: perl-XML-XPath - -Provides: bundled(gnulib) - -%description -Libvirt is a C toolkit to interact with the virtualization capabilities -of recent versions of Linux (and other OSes). The main package includes -the libvirtd server exporting the virtualization support. - -%package docs -Summary: API reference and website documentation -Group: Development/Libraries - -%description docs -Includes the API reference for the libvirt C library, and a complete -copy of the libvirt.org website documentation. - -%package daemon -Summary: Server side daemon and supporting files for libvirt library -Group: Development/Libraries - -# All runtime requirements for the libvirt package (runtime requrements -# for subpackages are listed later in those subpackages) - -# The client side, i.e. shared libs are in a subpackage -Requires: %{name}-libs = %{version}-%{release} - -# for modprobe of pci devices -Requires: module-init-tools -# for /sbin/ip & /sbin/tc -Requires: iproute -Requires: avahi-libs -%if 0%{?fedora} || 0%{?rhel} >= 7 -Requires: polkit >= 0.112 -%else -Requires: polkit >= 0.93 -%endif -%if %{with_cgconfig} -Requires: libcgroup -%endif -%ifarch %{ix86} x86_64 ia64 -# For virConnectGetSysinfo -Requires: dmidecode -%endif -# For service management -%if %{with_systemd} -Requires(post): systemd-units -Requires(post): systemd-sysv -Requires(preun): systemd-units -Requires(postun): systemd-units -%endif -%if %{with_numad} -Requires: numad -%endif -# libvirtd depends on 'messagebus' service -Requires: dbus -# For uid creation during pre -Requires(pre): shadow-utils - -%description daemon -Server side daemon required to manage the virtualization capabilities -of recent versions of Linux. Requires a hypervisor specific sub-RPM -for specific drivers. - -%package daemon-config-network -Summary: Default configuration files for the libvirtd daemon -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} -Requires: libvirt-daemon-driver-network = %{version}-%{release} - -%description daemon-config-network -Default configuration files for setting up NAT based networking - -%package daemon-config-nwfilter -Summary: Network filter configuration files for the libvirtd daemon -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} -Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release} - -%description daemon-config-nwfilter -Network filter configuration files for cleaning guest traffic - -%package daemon-driver-network -Summary: Network driver plugin for the libvirtd daemon -Group: Development/Libraries -Requires: libvirt-daemon = %{version}-%{release} -Requires: dnsmasq >= 2.41 -Requires: radvd -Requires: iptables -%if 0%{?rhel} && 0%{?rhel} < 7 -Requires: iptables-ipv6 -%endif - -%description daemon-driver-network -The network driver plugin for the libvirtd daemon, providing -an implementation of the virtual network APIs using the Linux -bridge capabilities. - - -%package daemon-driver-nwfilter -Summary: Nwfilter driver plugin for the libvirtd daemon -Group: Development/Libraries -Requires: libvirt-daemon = %{version}-%{release} -Requires: iptables -%if 0%{?rhel} && 0%{?rhel} < 7 -Requires: iptables-ipv6 -%endif -Requires: ebtables - -%description daemon-driver-nwfilter -The nwfilter driver plugin for the libvirtd daemon, providing -an implementation of the firewall APIs using the ebtables, -iptables and ip6tables capabilities - - -%package daemon-driver-nodedev -Summary: Nodedev driver plugin for the libvirtd daemon -Group: Development/Libraries -Requires: libvirt-daemon = %{version}-%{release} -# needed for device enumeration -%if 0%{?fedora} || 0%{?rhel} >= 7 -Requires: systemd >= 185 -%else -Requires: udev >= 145 -%endif - -%description daemon-driver-nodedev -The nodedev driver plugin for the libvirtd daemon, providing -an implementation of the node device APIs using the udev -capabilities. - - -%package daemon-driver-interface -Summary: Interface driver plugin for the libvirtd daemon -Group: Development/Libraries -Requires: libvirt-daemon = %{version}-%{release} -%if (0%{?fedora} || 0%{?rhel} >= 7) -Requires: netcf-libs >= 0.2.2 -%endif - -%description daemon-driver-interface -The interface driver plugin for the libvirtd daemon, providing -an implementation of the network interface APIs using the -netcf library - - -%package daemon-driver-secret -Summary: Secret driver plugin for the libvirtd daemon -Group: Development/Libraries -Requires: libvirt-daemon = %{version}-%{release} - -%description daemon-driver-secret -The secret driver plugin for the libvirtd daemon, providing -an implementation of the secret key APIs. - -%package daemon-driver-storage-core -Summary: Storage driver plugin including base backends for the libvirtd daemon -Group: Development/Libraries -Requires: libvirt-daemon = %{version}-%{release} -Requires: nfs-utils -# For mkfs -Requires: util-linux -%if %{with_qemu} -# From QEMU RPMs -Requires: /usr/bin/qemu-img -%else - %if %{with_xen} -# From Xen RPMs -Requires: /usr/sbin/qcow-create - %endif -%endif - -%description daemon-driver-storage-core -The storage driver plugin for the libvirtd daemon, providing -an implementation of the storage APIs using files, local disks, LVM, SCSI, -iSCSI, and multipath storage. - -%package daemon-driver-storage-logical -Summary: Storage driver plugin for lvm volumes -Group: Development/Libraries -Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} -Requires: lvm2 - -%description daemon-driver-storage-logical -The storage driver backend adding implementation of the storage APIs for block -volumes using lvm. - - -%package daemon-driver-storage-disk -Summary: Storage driver plugin for disk -Group: Development/Libraries -Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} -Requires: parted -Requires: device-mapper - -%description daemon-driver-storage-disk -The storage driver backend adding implementation of the storage APIs for block -volumes using the host disks. - - -%package daemon-driver-storage-scsi -Summary: Storage driver plugin for local scsi devices -Group: Development/Libraries -Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} - -%description daemon-driver-storage-scsi -The storage driver backend adding implementation of the storage APIs for scsi -host devices. - - -%package daemon-driver-storage-iscsi -Summary: Storage driver plugin for iscsi -Group: Development/Libraries -Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} -Requires: iscsi-initiator-utils - -%description daemon-driver-storage-iscsi -The storage driver backend adding implementation of the storage APIs for iscsi -volumes using the host iscsi stack. - - -%package daemon-driver-storage-mpath -Summary: Storage driver plugin for multipath volumes -Group: Development/Libraries -Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} -Requires: device-mapper - -%description daemon-driver-storage-mpath -The storage driver backend adding implementation of the storage APIs for -multipath storage using device mapper. - - -%if %{with_storage_gluster} -%package daemon-driver-storage-gluster -Summary: Storage driver plugin for gluster -Group: Development/Libraries -Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} - %if 0%{?fedora} -Requires: glusterfs-client >= 2.0.1 - %endif - %if (0%{?fedora} || 0%{?with_storage_gluster}) -Requires: /usr/sbin/gluster - %endif - -%description daemon-driver-storage-gluster -The storage driver backend adding implementation of the storage APIs for gluster -volumes using libgfapi. -%endif - - -%if %{with_storage_rbd} -%package daemon-driver-storage-rbd -Summary: Storage driver plugin for rbd -Group: Development/Libraries -Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} - -%description daemon-driver-storage-rbd -The storage driver backend adding implementation of the storage APIs for rbd -volumes using the ceph protocol. -%endif - - -%if %{with_storage_sheepdog} -%package daemon-driver-storage-sheepdog -Summary: Storage driver plugin for sheepdog -Group: Development/Libraries -Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} -Requires: sheepdog - -%description daemon-driver-storage-sheepdog -The storage driver backend adding implementation of the storage APIs for -sheepdog volumes using. -%endif - - -%package daemon-driver-storage -Summary: Storage driver plugin including all backends for the libvirtd daemon -Group: Development/Libraries -Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} -Requires: libvirt-daemon-driver-storage-disk = %{version}-%{release} -Requires: libvirt-daemon-driver-storage-logical = %{version}-%{release} -Requires: libvirt-daemon-driver-storage-scsi = %{version}-%{release} -Requires: libvirt-daemon-driver-storage-iscsi = %{version}-%{release} -Requires: libvirt-daemon-driver-storage-mpath = %{version}-%{release} -%if %{with_storage_gluster} -Requires: libvirt-daemon-driver-storage-gluster = %{version}-%{release} -%endif -%if %{with_storage_rbd} -Requires: libvirt-daemon-driver-storage-rbd = %{version}-%{release} -%endif -%if %{with_storage_sheepdog} -Requires: libvirt-daemon-driver-storage-sheepdog = %{version}-%{release} -%endif - -%description daemon-driver-storage -The storage driver plugin for the libvirtd daemon, providing -an implementation of the storage APIs using LVM, iSCSI, -parted and more. - - -%if %{with_qemu} -%package daemon-driver-qemu -Summary: QEMU driver plugin for the libvirtd daemon -Group: Development/Libraries -Requires: libvirt-daemon = %{version}-%{release} -# There really is a hard cross-driver dependency here -Requires: libvirt-daemon-driver-network = %{version}-%{release} -Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} -Requires: /usr/bin/qemu-img -# For image compression -Requires: gzip -Requires: bzip2 -Requires: lzop -Requires: xz - %if 0%{?fedora} >= 24 -Requires: systemd-container - %endif - -%description daemon-driver-qemu -The qemu driver plugin for the libvirtd daemon, providing -an implementation of the hypervisor driver APIs using -QEMU -%endif - - -%if %{with_lxc} -%package daemon-driver-lxc -Summary: LXC driver plugin for the libvirtd daemon -Group: Development/Libraries -Requires: libvirt-daemon = %{version}-%{release} -# There really is a hard cross-driver dependency here -Requires: libvirt-daemon-driver-network = %{version}-%{release} - %if 0%{?fedora} >= 24 -Requires: systemd-container - %endif - -%description daemon-driver-lxc -The LXC driver plugin for the libvirtd daemon, providing -an implementation of the hypervisor driver APIs using -the Linux kernel -%endif - - -%if %{with_uml} -%package daemon-driver-uml -Summary: Uml driver plugin for the libvirtd daemon -Group: Development/Libraries -Requires: libvirt-daemon = %{version}-%{release} - -%description daemon-driver-uml -The UML driver plugin for the libvirtd daemon, providing -an implementation of the hypervisor driver APIs using -User Mode Linux -%endif - - -%if %{with_xen} -%package daemon-driver-xen -Summary: Xen driver plugin for the libvirtd daemon -Group: Development/Libraries -Requires: libvirt-daemon = %{version}-%{release} - -%description daemon-driver-xen -The Xen driver plugin for the libvirtd daemon, providing -an implementation of the hypervisor driver APIs using -Xen -%endif - - -%if %{with_vbox} -%package daemon-driver-vbox -Summary: VirtualBox driver plugin for the libvirtd daemon -Group: Development/Libraries -Requires: libvirt-daemon = %{version}-%{release} - -%description daemon-driver-vbox -The vbox driver plugin for the libvirtd daemon, providing -an implementation of the hypervisor driver APIs using -VirtualBox -%endif - - -%if %{with_libxl} -%package daemon-driver-libxl -Summary: Libxl driver plugin for the libvirtd daemon -Group: Development/Libraries -Requires: libvirt-daemon = %{version}-%{release} - -%description daemon-driver-libxl -The Libxl driver plugin for the libvirtd daemon, providing -an implementation of the hypervisor driver APIs using -Libxl -%endif - - - -%if %{with_qemu_tcg} -%package daemon-qemu -Summary: Server side daemon & driver required to run QEMU guests -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} -Requires: libvirt-daemon-driver-qemu = %{version}-%{release} -Requires: libvirt-daemon-driver-interface = %{version}-%{release} -Requires: libvirt-daemon-driver-network = %{version}-%{release} -Requires: libvirt-daemon-driver-nodedev = %{version}-%{release} -Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release} -Requires: libvirt-daemon-driver-secret = %{version}-%{release} -Requires: libvirt-daemon-driver-storage = %{version}-%{release} -Requires: qemu - -%description daemon-qemu -Server side daemon and driver required to manage the virtualization -capabilities of the QEMU TCG emulators -%endif - - -%if %{with_qemu_kvm} -%package daemon-kvm -Summary: Server side daemon & driver required to run KVM guests -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} -Requires: libvirt-daemon-driver-qemu = %{version}-%{release} -Requires: libvirt-daemon-driver-interface = %{version}-%{release} -Requires: libvirt-daemon-driver-network = %{version}-%{release} -Requires: libvirt-daemon-driver-nodedev = %{version}-%{release} -Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release} -Requires: libvirt-daemon-driver-secret = %{version}-%{release} -Requires: libvirt-daemon-driver-storage = %{version}-%{release} -Requires: qemu-kvm - -%description daemon-kvm -Server side daemon and driver required to manage the virtualization -capabilities of the KVM hypervisor -%endif - - -%if %{with_lxc} -%package daemon-lxc -Summary: Server side daemon & driver required to run LXC guests -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} -Requires: libvirt-daemon-driver-lxc = %{version}-%{release} -Requires: libvirt-daemon-driver-interface = %{version}-%{release} -Requires: libvirt-daemon-driver-network = %{version}-%{release} -Requires: libvirt-daemon-driver-nodedev = %{version}-%{release} -Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release} -Requires: libvirt-daemon-driver-secret = %{version}-%{release} -Requires: libvirt-daemon-driver-storage = %{version}-%{release} - -%description daemon-lxc -Server side daemon and driver required to manage the virtualization -capabilities of LXC -%endif - - -%if %{with_uml} -%package daemon-uml -Summary: Server side daemon & driver required to run UML guests -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} -Requires: libvirt-daemon-driver-uml = %{version}-%{release} -Requires: libvirt-daemon-driver-interface = %{version}-%{release} -Requires: libvirt-daemon-driver-network = %{version}-%{release} -Requires: libvirt-daemon-driver-nodedev = %{version}-%{release} -Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release} -Requires: libvirt-daemon-driver-secret = %{version}-%{release} -Requires: libvirt-daemon-driver-storage = %{version}-%{release} -# There are no UML kernel RPMs in Fedora/RHEL to depend on. - -%description daemon-uml -Server side daemon and driver required to manage the virtualization -capabilities of UML -%endif - - -%if %{with_xen} || %{with_libxl} -%package daemon-xen -Summary: Server side daemon & driver required to run XEN guests -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} - %if %{with_xen} -Requires: libvirt-daemon-driver-xen = %{version}-%{release} - %endif - %if %{with_libxl} -Requires: libvirt-daemon-driver-libxl = %{version}-%{release} - %endif -Requires: libvirt-daemon-driver-interface = %{version}-%{release} -Requires: libvirt-daemon-driver-network = %{version}-%{release} -Requires: libvirt-daemon-driver-nodedev = %{version}-%{release} -Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release} -Requires: libvirt-daemon-driver-secret = %{version}-%{release} -Requires: libvirt-daemon-driver-storage = %{version}-%{release} -Requires: xen - -%description daemon-xen -Server side daemon and driver required to manage the virtualization -capabilities of XEN -%endif - -%if %{with_vbox} -%package daemon-vbox -Summary: Server side daemon & driver required to run VirtualBox guests -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} -Requires: libvirt-daemon-driver-vbox = %{version}-%{release} -Requires: libvirt-daemon-driver-interface = %{version}-%{release} -Requires: libvirt-daemon-driver-network = %{version}-%{release} -Requires: libvirt-daemon-driver-nodedev = %{version}-%{release} -Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release} -Requires: libvirt-daemon-driver-secret = %{version}-%{release} -Requires: libvirt-daemon-driver-storage = %{version}-%{release} - -%description daemon-vbox -Server side daemon and driver required to manage the virtualization -capabilities of VirtualBox -%endif - -%package client -Summary: Client side utilities of the libvirt library -Group: Development/Libraries -Requires: %{name}-libs = %{version}-%{release} -Requires: readline -Requires: ncurses -# Needed by /usr/libexec/libvirt-guests.sh script. -Requires: gettext -# Needed by virt-pki-validate script. -Requires: gnutls-utils -%if %{with_pm_utils} -# Needed for probing the power management features of the host. -Requires: pm-utils -%endif -%if %{with_bash_completion} -Requires: %{name}-bash-completion = %{version}-%{release} -%endif - -%description client -The client binaries needed to access the virtualization -capabilities of recent versions of Linux (and other OSes). - -%package libs -Summary: Client side libraries -Group: Development/Libraries -# So remote clients can access libvirt over SSH tunnel -# (client invokes 'nc' against the UNIX socket on the server) -Requires: nc -Requires: cyrus-sasl -# Needed by default sasl.conf - no onerous extra deps, since -# 100's of other things on a system already pull in krb5-libs -Requires: cyrus-sasl-gssapi - -%description libs -Shared libraries for accessing the libvirt daemon. - -%package admin -Summary: Set of tools to control libvirt daemon -Group: Development/Libraries -Requires: %{name}-libs = %{version}-%{release} -Requires: readline -%if %{with_bash_completion} -Requires: %{name}-bash-completion = %{version}-%{release} -%endif - -%description admin -The client side utilities to control the libvirt daemon. - -%if %{with_bash_completion} -%package bash-completion -Summary: Bash completion script - -%description bash-completion -Bash completion script stub. -%endif - -%if %{with_wireshark} -%package wireshark -Summary: Wireshark dissector plugin for libvirt RPC transactions -Group: Development/Libraries -Requires: wireshark >= 1.12.6-4 -Requires: %{name}-libs = %{version}-%{release} - -%description wireshark -Wireshark dissector plugin for better analysis of libvirt RPC traffic. -%endif - -%if %{with_lxc} -%package login-shell -Summary: Login shell for connecting users to an LXC container -Group: Development/Libraries -Requires: %{name}-libs = %{version}-%{release} - -%description login-shell -Provides the set-uid virt-login-shell binary that is used to -connect a user to an LXC container when they login, by switching -namespaces. -%endif - -%package devel -Summary: Libraries, includes, etc. to compile with the libvirt library -Group: Development/Libraries -Requires: %{name}-libs = %{version}-%{release} -Requires: pkgconfig - -%description devel -Include header files & development libraries for the libvirt C library. - -%if %{with_sanlock} -%package lock-sanlock -Summary: Sanlock lock manager plugin for QEMU driver -Group: Development/Libraries -Requires: sanlock >= 2.4 -#for virt-sanlock-cleanup require augeas -Requires: augeas -Requires: %{name}-daemon = %{version}-%{release} -Requires: %{name}-libs = %{version}-%{release} - -%description lock-sanlock -Includes the Sanlock lock manager plugin for the QEMU -driver -%endif - -%package nss -Summary: Libvirt plugin for Name Service Switch -Group: Development/Libraries -Requires: libvirt-daemon-driver-network = %{version}-%{release} - -%description nss -Libvirt plugin for NSS for translating domain names into IP addresses. - - -%prep -%if ! %{supported_platform} -echo "This RPM requires either Fedora >= 20 or RHEL >= 6" -exit 1 -%endif - -%setup -q - -# Patches have to be stored in a temporary file because RPM has -# a limit on the length of the result of any macro expansion; -# if the string is longer, it's silently cropped -%{lua: - tmp = os.tmpname(); - f = io.open(tmp, "w+"); - count = 0; - for i, p in ipairs(patches) do - f:write(p.."\n"); - count = count + 1; - end; - f:close(); - print("PATCHCOUNT="..count.."\n") - print("PATCHLIST="..tmp.."\n") -} - -git init -q -git config user.name rpm-build -git config user.email rpm-build -git config gc.auto 0 -git add . -git commit -q -a --author 'rpm-build ' \ - -m '%{name}-%{version} base' - -COUNT=$(grep '\.patch$' $PATCHLIST | wc -l) -if [ $COUNT -ne $PATCHCOUNT ]; then - echo "Found $COUNT patches in $PATCHLIST, expected $PATCHCOUNT" - exit 1 -fi -if [ $COUNT -gt 0 ]; then - xargs git am <$PATCHLIST || exit 1 -fi -echo "Applied $COUNT patches" -rm -f $PATCHLIST -rm -rf .git - -%build -%if %{with_xen} - %define arg_xen --with-xen -%else - %define arg_xen --without-xen -%endif - -%if %{with_qemu} - %define arg_qemu --with-qemu -%else - %define arg_qemu --without-qemu -%endif - -%if %{with_openvz} - %define arg_openvz --with-openvz -%else - %define arg_openvz --without-openvz -%endif - -%if %{with_lxc} - %define arg_lxc --with-lxc -%else - %define arg_lxc --without-lxc -%endif - -%if %{with_vbox} - %define arg_vbox --with-vbox -%else - %define arg_vbox --without-vbox -%endif - -%if %{with_libxl} - %define arg_libxl --with-libxl -%else - %define arg_libxl --without-libxl -%endif - -%if %{with_phyp} - %define arg_phyp --with-phyp -%else - %define arg_phyp --without-phyp -%endif - -%if %{with_esx} - %define arg_esx --with-esx -%else - %define arg_esx --without-esx -%endif - -%if %{with_hyperv} - %define arg_hyperv --with-hyperv -%else - %define arg_hyperv --without-hyperv -%endif - -%if %{with_vmware} - %define arg_vmware --with-vmware -%else - %define arg_vmware --without-vmware -%endif - -%if %{with_uml} - %define arg_uml --with-uml -%else - %define arg_uml --without-uml -%endif - -%if %{with_storage_rbd} - %define arg_storage_rbd --with-storage-rbd -%else - %define arg_storage_rbd --without-storage-rbd -%endif - -%if %{with_storage_sheepdog} - %define arg_storage_sheepdog --with-storage-sheepdog -%else - %define arg_storage_sheepdog --without-storage-sheepdog -%endif - -%if %{with_storage_gluster} - %define arg_storage_gluster --with-storage-gluster -%else - %define arg_storage_gluster --without-storage-gluster -%endif - -%if %{with_numactl} - %define arg_numactl --with-numactl -%else - %define arg_numactl --without-numactl -%endif - -%if %{with_numad} - %define arg_numad --with-numad -%else - %define arg_numad --without-numad -%endif - -%if %{with_fuse} - %define arg_fuse --with-fuse -%else - %define arg_fuse --without-fuse -%endif - -%if %{with_sanlock} - %define arg_sanlock --with-sanlock -%else - %define arg_sanlock --without-sanlock -%endif - -%if %{with_firewalld} - %define arg_firewalld --with-firewalld -%else - %define arg_firewalld --without-firewalld -%endif - -%if %{with_wireshark} - %define arg_wireshark --with-wireshark-dissector -%else - %define arg_wireshark --without-wireshark-dissector -%endif - -%if %{with_pm_utils} - %define arg_pm_utils --with-pm-utils -%else - %define arg_pm_utils --without-pm-utils -%endif - -%define when %(date +"%%F-%%T") -%define where %(hostname) -%define who %{?packager}%{!?packager:Unknown} -%define arg_packager --with-packager="%{who}, %{when}, %{where}" -%define arg_packager_version --with-packager-version="%{release}" - -%if %{with_systemd} - %define arg_init_script --with-init-script=systemd -%else - %define arg_init_script --with-init-script=redhat -%endif - -%if 0%{?fedora} || 0%{?rhel} >= 7 - %define arg_selinux_mount --with-selinux-mount="/sys/fs/selinux" -%else - %define arg_selinux_mount --with-selinux-mount="/selinux" -%endif - -%if 0%{?fedora} - # Nightly firmware repo x86/OVMF - LOADERS="/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd:/usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd" - # Nightly firmware repo aarch64/AAVMF - LOADERS="$LOADERS:/usr/share/edk2.git/aarch64/QEMU_EFI-pflash.raw:/usr/share/edk2.git/aarch64/vars-template-pflash.raw" - # Fedora official x86/OVMF - LOADERS="$LOADERS:/usr/share/edk2/ovmf/OVMF_CODE.fd:/usr/share/edk2/ovmf/OVMF_VARS.fd" - # Fedora official aarch64/AAVMF - LOADERS="$LOADERS:/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw:/usr/share/edk2/aarch64/vars-template-pflash.raw" - %define arg_loader_nvram --with-loader-nvram="$LOADERS" -%endif - -# place macros above and build commands below this comment - -# STX: Generate configure script. Default is to do a "git clone" of gnulib. -# Use the tar ball gnulib tarball instead. -tar zxf %{SOURCE6} -./bootstrap --no-git --gnulib-srcdir=gnulib-ffc927e --copy -tar zxf %{SOURCE7} -C src - -%if 0%{?enable_autotools} - autoreconf -if -%endif - -rm -f po/stamp-po -%configure %{?arg_xen} \ - %{?arg_qemu} \ - %{?arg_openvz} \ - %{?arg_lxc} \ - %{?arg_vbox} \ - %{?arg_libxl} \ - --with-sasl \ - --with-avahi \ - --with-polkit \ - --with-libvirtd \ - %{?arg_uml} \ - %{?arg_phyp} \ - %{?arg_esx} \ - %{?arg_hyperv} \ - %{?arg_vmware} \ - --without-xenapi \ - --without-vz \ - --without-bhyve \ - --with-interface \ - --with-network \ - --with-storage-fs \ - --with-storage-lvm \ - --with-storage-iscsi \ - --with-storage-scsi \ - --with-storage-disk \ - --with-storage-mpath \ - %{?arg_storage_rbd} \ - %{?arg_storage_sheepdog} \ - %{?arg_storage_gluster} \ - --without-storage-zfs \ - --without-storage-vstorage \ - %{?arg_numactl} \ - %{?arg_numad} \ - --with-capng \ - %{?arg_fuse} \ - --with-netcf \ - --with-selinux \ - %{?arg_selinux_mount} \ - --without-apparmor \ - --without-hal \ - --with-udev \ - --with-yajl \ - %{?arg_sanlock} \ - --with-libpcap \ - --with-macvtap \ - --with-audit \ - --with-dtrace \ - --with-driver-modules \ - %{?arg_firewalld} \ - %{?arg_wireshark} \ - %{?arg_pm_utils} \ - --with-nss-plugin \ - %{arg_packager} \ - %{arg_packager_version} \ - --with-qemu-user=%{qemu_user} \ - --with-qemu-group=%{qemu_group} \ - --with-tls-priority=%{tls_priority} \ - %{?arg_loader_nvram} \ - %{?enable_werror} \ - --enable-expensive-tests \ - --without-audit \ - --without-dtrace \ - %{arg_init_script} - -#STX: Avoid doing a 'config.status --recheck' (./configure executed twice). -touch -r config.status configure - -make %{?_smp_mflags} -gzip -9 ChangeLog - -%install -rm -fr %{buildroot} - -# Avoid using makeinstall macro as it changes prefixes rather than setting -# DESTDIR. Newer make_install macro would be better but it's not available -# on RHEL 5, thus we need to expand it here. -make %{?_smp_mflags} install DESTDIR=%{?buildroot} SYSTEMD_UNIT_DIR=%{_unitdir} - -make %{?_smp_mflags} -C examples distclean - -rm -f $RPM_BUILD_ROOT%{_libdir}/*.la -rm -f $RPM_BUILD_ROOT%{_libdir}/*.a -rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.la -rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.a -rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.la -rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.a -rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-backend/*.la -rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-backend/*.a -rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-file/*.la -rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-file/*.a -%if %{with_wireshark} - %if 0%{fedora} >= 24 -rm -f $RPM_BUILD_ROOT%{_libdir}/wireshark/plugins/libvirt.la - %else -rm -f $RPM_BUILD_ROOT%{_libdir}/wireshark/plugins/*/libvirt.la -mv $RPM_BUILD_ROOT%{_libdir}/wireshark/plugins/*/libvirt.so \ - $RPM_BUILD_ROOT%{_libdir}/wireshark/plugins/libvirt.so - %endif -%endif - -install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/lib/libvirt/dnsmasq/ -# We don't want to install /etc/libvirt/qemu/networks in the main %files list -# because if the admin wants to delete the default network completely, we don't -# want to end up re-incarnating it on every RPM upgrade. -install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/ -cp $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml \ - $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml -rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml -rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml - -# nwfilter files are installed in /usr/share/libvirt and copied to /etc in %post -# to avoid verification errors on changed files in /etc -install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/nwfilter/ -cp -a $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter/*.xml \ - $RPM_BUILD_ROOT%{_datadir}/libvirt/nwfilter/ - -# Strip auto-generated UUID - we need it generated per-install -sed -i -e "//d" $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml -%if ! %{with_qemu} -rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug -rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug -%endif -%find_lang %{name} - -%if ! %{with_sanlock} -rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirt_sanlock.aug -rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug -%endif - -%if ! %{with_lxc} -rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_lxc.aug -rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug -%endif - -%if ! %{with_qemu} -rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf -rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.qemu -%endif -%if ! %{with_lxc} -rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/lxc.conf -rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.lxc -%endif -%if ! %{with_libxl} -rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/libxl.conf -rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.libxl -rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_libxl.aug -rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug -%endif -%if ! %{with_uml} -rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.uml -%endif - -# Copied into libvirt-docs subpackage eventually -mv $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-%{version} libvirt-docs - -# STX: Disable dtrace -# %ifarch %{power64} s390x x86_64 ia64 alpha sparc64 -# mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes.stp \ -# $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes-64.stp -# mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \ -# $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes-64.stp -# %endif - -# STX: Begin custom install -## Enable syslog for libvirtd ( /var/log/libvirtd.log ) -echo "log_outputs=\"3:syslog:libvirtd\"" >> %{buildroot}/etc/libvirt/libvirtd.conf - -## Set auth_tcp to "none" for now to enable live migration. -## We'll need to set up proper authentication later. -sed -i '/#auth_tcp/a auth_tcp = "none"' %{buildroot}/etc/libvirt/libvirtd.conf - -## Install logrotate files -install -d -m 755 %{buildroot}/etc/logrotate.d -install -p -D -m 644 %{SOURCE2} %{buildroot}/etc/logrotate.d/libvirtd -install -p -D -m 644 %{SOURCE3} %{buildroot}/etc/logrotate.d/libvirtd.lxc -install -p -D -m 644 %{SOURCE4} %{buildroot}/etc/logrotate.d/libvirtd.qemu -install -p -D -m 644 %{SOURCE5} %{buildroot}/etc/logrotate.d/libvirtd.uml -## Install hooks -mkdir -p $RPM_BUILD_ROOT/etc/libvirt/hooks -install -m 0500 %{SOURCE8} $RPM_BUILD_ROOT/etc/libvirt/hooks/qemu -# STX: End custom install - -%clean -rm -fr %{buildroot} - -# STX: We are not maintaining the unit tests. -# %check -# cd tests -# # These tests don't current work in a mock build root -# for i in nodeinfotest seclabeltest -# do -# rm -f $i -# printf 'int main(void) { return 0; }' > $i.c -# printf '#!/bin/sh\nexit 0\n' > $i -# chmod +x $i -# done -# if ! make %{?_smp_mflags} check VIR_TEST_DEBUG=1 -# then -# cat test-suite.log || true -# exit 1 -# fi - -%pre daemon -# 'libvirt' group is just to allow password-less polkit access to -# libvirtd. The uid number is irrelevant, so we use dynamic allocation -# described at the above link. -getent group libvirt >/dev/null || groupadd -r libvirt - -exit 0 - -%post daemon - -%if %{with_systemd} - %if %{with_systemd_macros} - %systemd_post virtlockd.socket virtlogd.socket libvirtd.service - %else -if [ $1 -eq 1 ] ; then - # Initial installation - /bin/systemctl enable \ - virtlockd.socket \ - virtlogd.socket \ - libvirtd.service >/dev/null 2>&1 || : -fi - %endif -%else - %if %{with_cgconfig} -# Starting with Fedora 16/RHEL-7, systemd automounts all cgroups, -# and cgconfig is no longer a necessary service. - %if 0%{?rhel} && 0%{?rhel} < 7 -if [ "$1" -eq "1" ]; then -/sbin/chkconfig cgconfig on -fi - %endif - %endif - -/sbin/chkconfig --add libvirtd -/sbin/chkconfig --add virtlogd -/sbin/chkconfig --add virtlockd -%endif - -%preun daemon -%if %{with_systemd} - %if %{with_systemd_macros} - %systemd_preun libvirtd.service virtlogd.socket virtlogd.service virtlockd.socket virtlockd.service - %else -if [ $1 -eq 0 ] ; then - # Package removal, not upgrade - /bin/systemctl --no-reload disable \ - libvirtd.service \ - virtlogd.socket \ - virtlogd.service \ - virtlockd.socket \ - virtlockd.service > /dev/null 2>&1 || : - /bin/systemctl stop \ - libvirtd.service \ - virtlogd.socket \ - virtlogd.service \ - virtlockd.socket \ - virtlockd.service > /dev/null 2>&1 || : -fi - %endif -%else -if [ $1 = 0 ]; then - /sbin/service libvirtd stop 1>/dev/null 2>&1 - /sbin/chkconfig --del libvirtd - /sbin/service virtlogd stop 1>/dev/null 2>&1 - /sbin/chkconfig --del virtlogd - /sbin/service virtlockd stop 1>/dev/null 2>&1 - /sbin/chkconfig --del virtlockd -fi -%endif - -%postun daemon -%if %{with_systemd} -/bin/systemctl daemon-reload >/dev/null 2>&1 || : -if [ $1 -ge 1 ] ; then - /bin/systemctl reload-or-try-restart virtlockd.service >/dev/null 2>&1 || : - /bin/systemctl reload-or-try-restart virtlogd.service >/dev/null 2>&1 || : - /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || : -fi -%else -if [ $1 -ge 1 ]; then - /sbin/service virtlockd reload > /dev/null 2>&1 || : - /sbin/service virtlogd reload > /dev/null 2>&1 || : - /sbin/service libvirtd condrestart > /dev/null 2>&1 -fi -%endif - -%if %{with_systemd} -%else -%triggerpostun daemon -- libvirt-daemon < 1.2.1 -if [ "$1" -ge "1" ]; then - /sbin/service virtlockd reload > /dev/null 2>&1 || : - /sbin/service virtlogd reload > /dev/null 2>&1 || : - /sbin/service libvirtd condrestart > /dev/null 2>&1 -fi -%endif - -# In upgrade scenario we must explicitly enable virtlockd/virtlogd -# sockets, if libvirtd is already enabled and start them if -# libvirtd is running, otherwise you'll get failures to start -# guests -%triggerpostun daemon -- libvirt-daemon < 1.3.0 -if [ $1 -ge 1 ] ; then -%if %{with_systemd} - /bin/systemctl is-enabled libvirtd.service 1>/dev/null 2>&1 && - /bin/systemctl enable virtlogd.socket || : - /bin/systemctl is-active libvirtd.service 1>/dev/null 2>&1 && - /bin/systemctl start virtlogd.socket || : -%else - /sbin/chkconfig libvirtd 1>/dev/null 2>&1 && - /sbin/chkconfig virtlogd on || : - /sbin/service libvirtd status 1>/dev/null 2>&1 && - /sbin/service virtlogd start || : -%endif -fi - -%post daemon-config-network -# STX: The 'with_network' flag doesn't work properly. There are some packaging -# errors when using it. Disable default.xml manually ... -# We don't want 'virbr0' and 'virbr0-nic' interfaces created. - -# if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then -# # see if the network used by default network creates a conflict, -# # and try to resolve it -# # NB: 192.168.122.0/24 is used in the default.xml template file; -# # do not modify any of those values here without also modifying -# # them in the template. -# orig_sub=122 -# sub=${orig_sub} -# nl=' -# ' -# routes="${nl}$(ip route show | cut -d' ' -f1)${nl}" -# case ${routes} in -# *"${nl}192.168.${orig_sub}.0/24${nl}"*) -# # there was a match, so we need to look for an unused subnet -# for new_sub in $(seq 124 254); do -# case ${routes} in -# *"${nl}192.168.${new_sub}.0/24${nl}"*) -# ;; -# *) -# sub=$new_sub -# break; -# ;; -# esac -# done -# ;; -# *) -# ;; -# esac -# -# UUID=`/usr/bin/uuidgen` -# sed -e "s/${orig_sub}/${sub}/g" \ -# -e "s,,\n $UUID," \ -# < %{_datadir}/libvirt/networks/default.xml \ -# > %{_sysconfdir}/libvirt/qemu/networks/default.xml -# ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml -# -# # Make sure libvirt picks up the new network defininiton -# %if %{with_systemd} -# /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 ||: -# %else -# /sbin/service libvirtd condrestart > /dev/null 2>&1 || : -# %endif -# -# fi - - -%post daemon-config-nwfilter -cp %{_datadir}/libvirt/nwfilter/*.xml %{_sysconfdir}/libvirt/nwfilter/ -# Make sure libvirt picks up the new nwfilter defininitons -%if %{with_systemd} - /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 ||: -%else - /sbin/service libvirtd condrestart > /dev/null 2>&1 || : -%endif - - -%if %{with_systemd} -%triggerun -- libvirt < 0.9.4 -%{_bindir}/systemd-sysv-convert --save libvirtd >/dev/null 2>&1 ||: - -# If the package is allowed to autostart: -/bin/systemctl --no-reload enable libvirtd.service >/dev/null 2>&1 ||: - -# Run these because the SysV package being removed won't do them -/sbin/chkconfig --del libvirtd >/dev/null 2>&1 || : -/bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || : -%endif - -%if %{with_qemu} -%pre daemon-driver-qemu -# We want soft static allocation of well-known ids, as disk images -# are commonly shared across NFS mounts by id rather than name; see -# https://fedoraproject.org/wiki/Packaging:UsersAndGroups -getent group kvm >/dev/null || groupadd -f -g 36 -r kvm -getent group qemu >/dev/null || groupadd -f -g 107 -r qemu -if ! getent passwd qemu >/dev/null; then - if ! getent passwd 107 >/dev/null; then - useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu - else - useradd -r -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu - fi -fi -exit 0 -%endif - -%preun client - -%if %{with_systemd} - %if %{with_systemd_macros} - %systemd_preun libvirt-guests.service - %endif -%else -if [ $1 = 0 ]; then - /sbin/chkconfig --del libvirt-guests - rm -f /var/lib/libvirt/libvirt-guests -fi -%endif - -%post client - -/sbin/ldconfig -%if %{with_systemd} - %if %{with_systemd_macros} - %systemd_post libvirt-guests.service - %endif -%else -/sbin/chkconfig --add libvirt-guests -%endif - -%postun client - -/sbin/ldconfig -%if %{with_systemd} - %if %{with_systemd_macros} - %systemd_postun libvirt-guests.service - %endif -%triggerun client -- libvirt < 0.9.4 -%{_bindir}/systemd-sysv-convert --save libvirt-guests >/dev/null 2>&1 ||: - -# If the package is allowed to autostart: -/bin/systemctl --no-reload enable libvirt-guests.service >/dev/null 2>&1 ||: - -# Run this because the SysV package being removed won't do them -/sbin/chkconfig --del libvirt-guests >/dev/null 2>&1 || : -%endif - -%if %{with_sanlock} -%post lock-sanlock -if getent group sanlock > /dev/null ; then - chmod 0770 %{_localstatedir}/lib/libvirt/sanlock - chown root:sanlock %{_localstatedir}/lib/libvirt/sanlock -fi -%endif - -%if %{with_lxc} -%pre login-shell -getent group virtlogin >/dev/null || groupadd -r virtlogin -exit 0 -%endif - -%files - -%files docs -# TODO(STX): NEWS is not present in git source repo. -%doc AUTHORS ChangeLog.gz README -%doc libvirt-docs/* - -# API docs -%dir %{_datadir}/gtk-doc/html/libvirt/ -%doc %{_datadir}/gtk-doc/html/libvirt/*.devhelp -%doc %{_datadir}/gtk-doc/html/libvirt/*.html -%doc %{_datadir}/gtk-doc/html/libvirt/*.png -%doc %{_datadir}/gtk-doc/html/libvirt/*.css -%doc examples/hellolibvirt -%doc examples/object-events -%doc examples/dominfo -%doc examples/domsuspend -%doc examples/dommigrate -%doc examples/openauth -%doc examples/xml -%doc examples/rename -%doc examples/systemtap -%doc examples/admin - - -%files daemon - -%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/ - -%if %{with_systemd} -%{_unitdir}/libvirtd.service -%{_unitdir}/virt-guest-shutdown.target -%{_unitdir}/virtlogd.service -%{_unitdir}/virtlogd.socket -%{_unitdir}/virtlogd-admin.socket -%{_unitdir}/virtlockd.service -%{_unitdir}/virtlockd.socket -%{_unitdir}/virtlockd-admin.socket -%else -%{_sysconfdir}/rc.d/init.d/libvirtd -%{_sysconfdir}/rc.d/init.d/virtlogd -%{_sysconfdir}/rc.d/init.d/virtlockd -%endif -%doc src/remote/libvirtd.upstart -%config(noreplace) %{_sysconfdir}/sysconfig/libvirtd -%config(noreplace) %{_sysconfdir}/sysconfig/virtlogd -%config(noreplace) %{_sysconfdir}/sysconfig/virtlockd -%config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf -%config(noreplace) %{_sysconfdir}/libvirt/virtlogd.conf -%config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf -%config(noreplace) %{_prefix}/lib/sysctl.d/60-libvirtd.conf - -%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd -%dir %{_datadir}/libvirt/ - -%ghost %dir %{_localstatedir}/run/libvirt/ - -%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/ -%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/filesystems/ -%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/boot/ -%dir %attr(0711, root, root) %{_localstatedir}/cache/libvirt/ - - -%dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver -%attr(0755, root, root) %{_libdir}/libvirt/lock-driver/lockd.so - -%{_datadir}/augeas/lenses/libvirtd.aug -%{_datadir}/augeas/lenses/tests/test_libvirtd.aug -%{_datadir}/augeas/lenses/virtlogd.aug -%{_datadir}/augeas/lenses/tests/test_virtlogd.aug -%{_datadir}/augeas/lenses/virtlockd.aug -%{_datadir}/augeas/lenses/tests/test_virtlockd.aug -%{_datadir}/augeas/lenses/libvirt_lockd.aug -%if %{with_qemu} -%{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug -%endif - -%{_datadir}/polkit-1/actions/org.libvirt.unix.policy -%{_datadir}/polkit-1/actions/org.libvirt.api.policy -%{_datadir}/polkit-1/rules.d/50-libvirt.rules - -%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/ - -%attr(0755, root, root) %{_libexecdir}/libvirt_iohelper - -%attr(0755, root, root) %{_sbindir}/libvirtd -%attr(0755, root, root) %{_sbindir}/virtlogd -%attr(0755, root, root) %{_sbindir}/virtlockd - -%{_mandir}/man8/libvirtd.8* -%{_mandir}/man8/virtlogd.8* -%{_mandir}/man8/virtlockd.8* -%{_mandir}/man7/virkey*.7* - -%doc examples/polkit/*.rules - -# STX: Customization -/etc/logrotate.d/* -/etc/libvirt/hooks/qemu - -%files daemon-config-network -%dir %{_datadir}/libvirt/networks/ -%{_datadir}/libvirt/networks/default.xml - -%files daemon-config-nwfilter -%dir %{_datadir}/libvirt/nwfilter/ -%{_datadir}/libvirt/nwfilter/*.xml -%ghost %{_sysconfdir}/libvirt/nwfilter/*.xml - -%files daemon-driver-interface -%{_libdir}/%{name}/connection-driver/libvirt_driver_interface.so - -%files daemon-driver-network -%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/ -%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/ -%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart -%ghost %dir %{_localstatedir}/run/libvirt/network/ -%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/network/ -%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/dnsmasq/ -%attr(0755, root, root) %{_libexecdir}/libvirt_leaseshelper -%{_libdir}/%{name}/connection-driver/libvirt_driver_network.so - -%files daemon-driver-nodedev -%{_libdir}/%{name}/connection-driver/libvirt_driver_nodedev.so - -%files daemon-driver-nwfilter -%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/ -%ghost %dir %{_localstatedir}/run/libvirt/network/ -%{_libdir}/%{name}/connection-driver/libvirt_driver_nwfilter.so - -%files daemon-driver-secret -%{_libdir}/%{name}/connection-driver/libvirt_driver_secret.so - -%files daemon-driver-storage - -%files daemon-driver-storage-core -%attr(0755, root, root) %{_libexecdir}/libvirt_parthelper -%{_libdir}/%{name}/connection-driver/libvirt_driver_storage.so -%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_fs.so -%{_libdir}/%{name}/storage-file/libvirt_storage_file_fs.so - -%files daemon-driver-storage-disk -%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_disk.so - -%files daemon-driver-storage-logical -%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_logical.so - -%files daemon-driver-storage-scsi -%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_scsi.so - -%files daemon-driver-storage-iscsi -%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_iscsi.so - -%files daemon-driver-storage-mpath -%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_mpath.so - -%if %{with_storage_gluster} -%files daemon-driver-storage-gluster -%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_gluster.so -%{_libdir}/%{name}/storage-file/libvirt_storage_file_gluster.so -%endif - -%if %{with_storage_rbd} -%files daemon-driver-storage-rbd -%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_rbd.so -%endif - -%if %{with_storage_sheepdog} -%files daemon-driver-storage-sheepdog -%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_sheepdog.so -%endif - -%if %{with_qemu} -%files daemon-driver-qemu -%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/ -%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/ -%config(noreplace) %{_sysconfdir}/libvirt/qemu.conf -%config(noreplace) %{_sysconfdir}/libvirt/qemu-lockd.conf -%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu -%ghost %dir %attr(0700, root, root) %{_localstatedir}/run/libvirt/qemu/ -%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/ -%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/ -%{_datadir}/augeas/lenses/libvirtd_qemu.aug -%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug -%{_libdir}/%{name}/connection-driver/libvirt_driver_qemu.so -%endif - -%if %{with_lxc} -%files daemon-driver-lxc -%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/lxc/ -%config(noreplace) %{_sysconfdir}/libvirt/lxc.conf -%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.lxc -%ghost %dir %{_localstatedir}/run/libvirt/lxc/ -%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/lxc/ -%{_datadir}/augeas/lenses/libvirtd_lxc.aug -%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug -%attr(0755, root, root) %{_libexecdir}/libvirt_lxc -%{_libdir}/%{name}/connection-driver/libvirt_driver_lxc.so -%endif - -%if %{with_uml} -%files daemon-driver-uml -%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/uml/ -%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.uml -%ghost %dir %{_localstatedir}/run/libvirt/uml/ -%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/uml/ -%{_libdir}/%{name}/connection-driver/libvirt_driver_uml.so -%endif - -%if %{with_xen} -%files daemon-driver-xen -%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/xen/ -%{_libdir}/%{name}/connection-driver/libvirt_driver_xen.so -%endif - -%if %{with_libxl} -%files daemon-driver-libxl -%config(noreplace) %{_sysconfdir}/libvirt/libxl.conf -%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.libxl -%config(noreplace) %{_sysconfdir}/libvirt/libxl-lockd.conf -%{_datadir}/augeas/lenses/libvirtd_libxl.aug -%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug -%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/libxl/ -%ghost %dir %{_localstatedir}/run/libvirt/libxl/ -%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/ -%{_libdir}/%{name}/connection-driver/libvirt_driver_libxl.so -%endif - -%if %{with_vbox} -%files daemon-driver-vbox -%{_libdir}/%{name}/connection-driver/libvirt_driver_vbox.so -%endif - -%if %{with_qemu_tcg} -%files daemon-qemu -%endif - -%if %{with_qemu_kvm} -%files daemon-kvm -%endif - -%if %{with_lxc} -%files daemon-lxc -%endif - -%if %{with_uml} -%files daemon-uml -%endif - -%if %{with_xen} || %{with_libxl} -%files daemon-xen -%endif - -%if %{with_vbox} -%files daemon-vbox -%endif - -%if %{with_sanlock} -%files lock-sanlock - %if %{with_qemu} -%config(noreplace) %{_sysconfdir}/libvirt/qemu-sanlock.conf - %endif - %if %{with_libxl} -%config(noreplace) %{_sysconfdir}/libvirt/libxl-sanlock.conf - %endif -%attr(0755, root, root) %{_libdir}/libvirt/lock-driver/sanlock.so -%{_datadir}/augeas/lenses/libvirt_sanlock.aug -%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug -%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/sanlock -%{_sbindir}/virt-sanlock-cleanup -%{_mandir}/man8/virt-sanlock-cleanup.8* -%attr(0755, root, root) %{_libexecdir}/libvirt_sanlock_helper -%endif - -%files client -%{_mandir}/man1/virsh.1* -%{_mandir}/man1/virt-xml-validate.1* -%{_mandir}/man1/virt-pki-validate.1* -%{_mandir}/man1/virt-host-validate.1* -%{_bindir}/virsh -%{_bindir}/virt-xml-validate -%{_bindir}/virt-pki-validate -%{_bindir}/virt-host-validate - -# STX: Disable dtrace -# %{_datadir}/systemtap/tapset/libvirt_probes*.stp -# %{_datadir}/systemtap/tapset/libvirt_qemu_probes*.stp -# %{_datadir}/systemtap/tapset/libvirt_functions.stp - -%if %{with_bash_completion} -%{_datadir}/bash-completion/completions/virsh -%endif - -%if %{with_systemd} -%{_unitdir}/libvirt-guests.service -%else -%{_sysconfdir}/rc.d/init.d/libvirt-guests -%endif -%config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests -%attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh - -%files libs -f %{name}.lang -%doc COPYING COPYING.LESSER -%config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf -%config(noreplace) %{_sysconfdir}/libvirt/libvirt-admin.conf -%{_libdir}/libvirt.so.* -%{_libdir}/libvirt-qemu.so.* -%{_libdir}/libvirt-lxc.so.* -%{_libdir}/libvirt-admin.so.* -%dir %{_datadir}/libvirt/ -%dir %{_datadir}/libvirt/schemas/ -%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/ - -%{_datadir}/libvirt/schemas/basictypes.rng -%{_datadir}/libvirt/schemas/capability.rng -%{_datadir}/libvirt/schemas/cputypes.rng -%{_datadir}/libvirt/schemas/domain.rng -%{_datadir}/libvirt/schemas/domaincaps.rng -%{_datadir}/libvirt/schemas/domaincommon.rng -%{_datadir}/libvirt/schemas/domainsnapshot.rng -%{_datadir}/libvirt/schemas/interface.rng -%{_datadir}/libvirt/schemas/network.rng -%{_datadir}/libvirt/schemas/networkcommon.rng -%{_datadir}/libvirt/schemas/nodedev.rng -%{_datadir}/libvirt/schemas/nwfilter.rng -%{_datadir}/libvirt/schemas/nwfilter_params.rng -%{_datadir}/libvirt/schemas/nwfilterbinding.rng -%{_datadir}/libvirt/schemas/secret.rng -%{_datadir}/libvirt/schemas/storagecommon.rng -%{_datadir}/libvirt/schemas/storagepool.rng -%{_datadir}/libvirt/schemas/storagevol.rng - -%dir %{_datadir}/libvirt/cpu_map/ -%{_datadir}/libvirt/cpu_map/* - -%{_datadir}/libvirt/test-screenshot.png - -%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf - -%files admin -%{_mandir}/man1/virt-admin.1* -%{_bindir}/virt-admin -%if %{with_bash_completion} -%{_datadir}/bash-completion/completions/virt-admin -%endif - -%if %{with_bash_completion} -%files bash-completion -%{_datadir}/bash-completion/completions/vsh -%endif - -%if %{with_wireshark} -%files wireshark -%{_libdir}/wireshark/plugins/libvirt.so -%endif - -%files nss -%{_libdir}/libnss_libvirt.so.2 -%{_libdir}/libnss_libvirt_guest.so.2 - -%if %{with_lxc} -%files login-shell -%attr(4750, root, virtlogin) %{_bindir}/virt-login-shell -%config(noreplace) %{_sysconfdir}/libvirt/virt-login-shell.conf -%{_mandir}/man1/virt-login-shell.1* -%endif - -%files devel -%{_libdir}/libvirt.so -%{_libdir}/libvirt-admin.so -%{_libdir}/libvirt-qemu.so -%{_libdir}/libvirt-lxc.so -%dir %{_includedir}/libvirt -%{_includedir}/libvirt/virterror.h -%{_includedir}/libvirt/libvirt.h -%{_includedir}/libvirt/libvirt-admin.h -%{_includedir}/libvirt/libvirt-common.h -%{_includedir}/libvirt/libvirt-domain.h -%{_includedir}/libvirt/libvirt-domain-snapshot.h -%{_includedir}/libvirt/libvirt-event.h -%{_includedir}/libvirt/libvirt-host.h -%{_includedir}/libvirt/libvirt-interface.h -%{_includedir}/libvirt/libvirt-network.h -%{_includedir}/libvirt/libvirt-nodedev.h -%{_includedir}/libvirt/libvirt-nwfilter.h -%{_includedir}/libvirt/libvirt-secret.h -%{_includedir}/libvirt/libvirt-storage.h -%{_includedir}/libvirt/libvirt-stream.h -%{_includedir}/libvirt/libvirt-qemu.h -%{_includedir}/libvirt/libvirt-lxc.h -%{_libdir}/pkgconfig/libvirt.pc -%{_libdir}/pkgconfig/libvirt-admin.pc -%{_libdir}/pkgconfig/libvirt-qemu.pc -%{_libdir}/pkgconfig/libvirt-lxc.pc - -%dir %{_datadir}/libvirt/api/ -%{_datadir}/libvirt/api/libvirt-api.xml -%{_datadir}/libvirt/api/libvirt-admin-api.xml -%{_datadir}/libvirt/api/libvirt-qemu-api.xml -%{_datadir}/libvirt/api/libvirt-lxc-api.xml - -# Needed building python bindings -%doc docs/libvirt-api.xml - - -%changelog diff --git a/virt/libvirt/centos/stx-libvirt.stable_docker_image b/virt/libvirt/centos/stx-libvirt.stable_docker_image deleted file mode 100644 index 85c8fefae..000000000 --- a/virt/libvirt/centos/stx-libvirt.stable_docker_image +++ /dev/null @@ -1,2 +0,0 @@ -BUILDER=docker -LABEL=stx-libvirt diff --git a/virt/libvirt/debian/deb_patches/0001-STX-Customize-Debian-build-files.patch b/virt/libvirt/debian/deb_patches/0001-STX-Customize-Debian-build-files.patch deleted file mode 100644 index e7c5541c5..000000000 --- a/virt/libvirt/debian/deb_patches/0001-STX-Customize-Debian-build-files.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 4e4452b3bba71265864d9c46f135418ffd6113a0 Mon Sep 17 00:00:00 2001 -From: Thales Elero Cervi -Date: Wed, 9 Nov 2022 09:07:21 -0300 -Subject: [PATCH] STX: Customize Debian build files - -Adds to libvirt Debian build instructions, starlingx specific files -based on how starlingx-staging/stx-libvirt was previously built and -delivered on CentOS, adding to the following: - * Enabling syslog for libvirtd - * Setting "auth_tcp" to "none" - * Logrotate files - * Qemu hook - -Signed-off-by: Thales Elero Cervi ---- - debian/libvirt-daemon-system.install | 1 + - debian/rules | 24 ++++++++++++++++++++++++ - 2 files changed, 25 insertions(+) - -diff --git a/debian/libvirt-daemon-system.install b/debian/libvirt-daemon-system.install -index 04cf9052c..b2ce2ac75 100644 ---- a/debian/libvirt-daemon-system.install -+++ b/debian/libvirt-daemon-system.install -@@ -2,6 +2,7 @@ etc/default/libvirt-guests - etc/default/libvirtd - etc/default/virtlockd - etc/default/virtlogd -+etc/libvirt/hooks/qemu - etc/libvirt/libvirtd.conf - etc/libvirt/qemu-lockd.conf - etc/libvirt/qemu.conf -diff --git a/debian/rules b/debian/rules -index a495870c4..a34132779 100755 ---- a/debian/rules -+++ b/debian/rules -@@ -15,6 +15,11 @@ DEB_LDFLAGS_MAINT_STRIP = -Wl,-Bsymbolic-functions - DPKG_EXPORT_BUILDFLAGS = 1 - include /usr/share/dpkg/buildflags.mk - -+SOURCE1 = libvirt.logrotate -+SOURCE2 = libvirt.lxc -+SOURCE3 = libvirt.qemu -+SOURCE4 = qemu -+ - ARCHES_LXC = alpha amd64 arm64 armel armhf hppa i386 m68k mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sh4 sparc64 x32 - ARCHES_XEN = amd64 arm64 armhf i386 - ARCHES_VBOX = amd64 i386 -@@ -221,6 +226,25 @@ override_dh_auto_install: - $(DEB_DESTDIR)/etc/libvirt/nwfilter/ \ - $(DEB_DESTDIR)/usr/share/libvirt/ - -+ # STX: Begin custom install -+ # Enable syslog for libvirtd (/var/log/libvirtd.log) -+ echo "log_outputs=\"3:syslog:libvirtd\"" >> $(DEB_DESTDIR)/etc/libvirt/libvirtd.conf -+ -+ # Set auth_tcp to "none" for now to enable live migration. -+ # We'll need to set up proper authentication later. -+ sed -i '/#auth_tcp/a auth_tcp = "none"' $(DEB_DESTDIR)/etc/libvirt/libvirtd.conf -+ -+ # Install logrotate files -+ install -p -D -m 644 $(SOURCE1) $(DEB_DESTDIR)/etc/logrotate.d/libvirtd -+ install -p -D -m 644 $(SOURCE2) $(DEB_DESTDIR)/etc/logrotate.d/libvirtd.lxc -+ install -p -D -m 644 $(SOURCE3) $(DEB_DESTDIR)/etc/logrotate.d/libvirtd.qemu -+ -+ # Install hooks -+ mkdir -p $(DEB_DESTDIR)/etc/libvirt/hooks -+ install -m 0500 $(SOURCE4) $(DEB_DESTDIR)/etc/libvirt/hooks/qemu -+ -+ # STX: End custom install -+ - override_dh_install-arch: - dh_install - --- -2.25.1 - diff --git a/virt/libvirt/debian/deb_patches/series b/virt/libvirt/debian/deb_patches/series deleted file mode 100644 index e0889044f..000000000 --- a/virt/libvirt/debian/deb_patches/series +++ /dev/null @@ -1 +0,0 @@ -0001-STX-Customize-Debian-build-files.patch diff --git a/virt/libvirt/debian/docker/Dockerfile b/virt/libvirt/debian/docker/Dockerfile deleted file mode 100644 index 09efbfaef..000000000 --- a/virt/libvirt/debian/docker/Dockerfile +++ /dev/null @@ -1,54 +0,0 @@ -# Expected build arguments: -# BASE: specify base layer -# REPO_OPTS: yum options to enable StarlingX repo -# -ARG BASE -FROM ${BASE} AS stx - -ENV DEBIAN_FRONTEND=noninteractive - -ARG PROJECT=nova -ARG UID=42424 -ARG GID=42424 - -RUN apt-get -y update \ - && apt-get -y install \ - ceph-common \ - dmidecode \ - iptables \ - iproute2 \ - cgroup-tools \ - libcgroup1 \ - libnss-libvirt \ - libvirt0 \ - libvirt-clients \ - libvirt-daemon \ - libvirt-daemon-config-network \ - libvirt-daemon-config-nwfilter \ - libvirt-daemon-driver-lxc \ - libvirt-daemon-driver-qemu \ - libvirt-daemon-driver-storage-gluster \ - libvirt-daemon-system \ - libvirt-daemon-system-systemd \ - libvirt-login-shell \ - pm-utils \ - qemu \ - qemu-block-extra \ - qemu-system-common \ - qemu-system-data \ - qemu-system-x86 \ - qemu-guest-agent \ - openvswitch-common \ - openvswitch-switch \ - openvswitch-switch-dpdk \ - python3-openvswitch \ - && apt-get -y clean \ - && rm -rf /var/lib/apt/lists/* - -RUN groupadd -g ${GID} ${PROJECT} ;\ - useradd -u ${UID} -g ${PROJECT} -M -d /var/lib/${PROJECT} -s /usr/sbin/nologin -c "${PROJECT} user" ${PROJECT} ;\ - mkdir -p /etc/${PROJECT} /var/log/${PROJECT} /var/lib/${PROJECT} /var/cache/${PROJECT} ;\ - chown ${PROJECT}:${PROJECT} /etc/${PROJECT} /var/log/${PROJECT} /var/lib/${PROJECT} /var/cache/${PROJECT} ;\ - usermod -a -G kvm ${PROJECT} ;\ - rm -rf /var/log/* /tmp/* /var/tmp/* - diff --git a/virt/libvirt/debian/meta_data.yaml b/virt/libvirt/debian/meta_data.yaml deleted file mode 100644 index ec2795ba9..000000000 --- a/virt/libvirt/debian/meta_data.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -debname: libvirt -debver: 7.0.0-3 -dl_path: - name: libvirt-debian-7.0.0-3.tar.gz - url: https://salsa.debian.org/libvirt-team/libvirt/-/archive/debian/7.0.0-3/libvirt-debian-7.0.0-3.tar.gz - md5sum: 371673c35fda957748ce3a19a0cd8539 - sha256sum: 6f6acf34b2ae20ec9cfa64e89c3245ccf44321c86cd5606abe718ca25e443b2f -src_files: - - libvirt/libvirt.logrotate - - libvirt/libvirt.lxc - - libvirt/libvirt.qemu - - libvirt/hooks/qemu -revision: - dist: $STX_DIST - GITREVCOUNT: - BASE_SRCREV: 1f37f8b5d4c953a71070410745195f33d58a7a60 - SRC_DIR: ${MY_REPO}/stx/integ/virt/libvirt diff --git a/virt/libvirt/debian/patches/0001-STX-CPU-pinning-not-working-over-live-migration.patch b/virt/libvirt/debian/patches/0001-STX-CPU-pinning-not-working-over-live-migration.patch deleted file mode 100644 index a351f23d8..000000000 --- a/virt/libvirt/debian/patches/0001-STX-CPU-pinning-not-working-over-live-migration.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 2721c79b6cd8caf0f7d1796c2316567cd44b2caa Mon Sep 17 00:00:00 2001 -From: Ludovic Beliveau -Date: Mon, 21 Mar 2016 17:46:41 -0400 -Subject: [PATCH] STX: CPU pinning not working over live-migration - -Commit carried over from pre-CentOS - -Signed-off-by: Jim Somerville -Signed-off-by: Thales Elero Cervi ---- - src/conf/domain_conf.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c -index 01b718763..70d29475d 100644 ---- a/src/conf/domain_conf.c -+++ b/src/conf/domain_conf.c -@@ -23184,10 +23184,14 @@ virDomainDefCheckABIStabilityFlags(virDomainDefPtr src, - goto error; - } - -+ /* STX: Disable this check since it is problematic. -+ - Note that disabling this check is not critical since -+ this section is regenerated at destination. - for (i = 0; i < src->nconsoles; i++) - if (!virDomainConsoleDefCheckABIStability(src->consoles[i], - dst->consoles[i])) - goto error; -+ */ - - if (src->nhubs != dst->nhubs) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, --- -2.25.1 - diff --git a/virt/libvirt/debian/patches/0002-STX-System-Logging-set-group-read-permission-on-log.patch b/virt/libvirt/debian/patches/0002-STX-System-Logging-set-group-read-permission-on-log.patch deleted file mode 100644 index 0a7f006ec..000000000 --- a/virt/libvirt/debian/patches/0002-STX-System-Logging-set-group-read-permission-on-log.patch +++ /dev/null @@ -1,47 +0,0 @@ -From fbc79d575f283055d5c19fce96e97f1e27038922 Mon Sep 17 00:00:00 2001 -From: Ludovic Beliveau -Date: Mon, 21 Mar 2016 18:12:32 -0400 -Subject: [PATCH] STX: System Logging: set group read permission on log files - -Commit carried over from pre-CentOS - -Signed-off-by: Jim Somerville -Signed-off-by: Thales Elero Cervi ---- - src/qemu/qemu_domain.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c -index 0765dc72d..72cccd1e9 100644 ---- a/src/qemu/qemu_domain.c -+++ b/src/qemu/qemu_domain.c -@@ -6339,7 +6339,7 @@ qemuDomainLogContextPtr qemuDomainLogContextNew(virQEMUDriverPtr driver, - if (ctxt->writefd < 0) - goto error; - } else { -- if ((ctxt->writefd = open(ctxt->path, O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR)) < 0) { -+ if ((ctxt->writefd = open(ctxt->path, O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR | S_IRGRP)) < 0) { - virReportSystemError(errno, _("failed to create logfile %s"), - ctxt->path); - goto error; -@@ -6506,7 +6506,7 @@ qemuDomainLogAppendMessage(virQEMUDriverPtr driver, - vm->def->name, path, message, 0) < 0) - goto cleanup; - } else { -- if ((writefd = open(path, O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR)) < 0) { -+ if ((writefd = open(path, O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR | S_IRGRP)) < 0) { - virReportSystemError(errno, _("failed to create logfile %s"), - path); - goto cleanup; -@@ -11060,7 +11060,7 @@ virQEMUFileOpenAs(uid_t fallback_uid, - goto error; - } - } else { -- if ((fd = virFileOpenAs(path, oflags, S_IRUSR | S_IWUSR, uid, gid, -+ if ((fd = virFileOpenAs(path, oflags, S_IRUSR | S_IWUSR | S_IRGRP, uid, gid, - vfoflags | VIR_FILE_OPEN_NOFORK)) < 0) { - /* If we failed as root, and the error was permission-denied - (EACCES or EPERM), assume it's on a network-connected share --- -2.25.1 - diff --git a/virt/libvirt/debian/patches/0003-STX-Drop-migration-poll-times-to-10mS.patch b/virt/libvirt/debian/patches/0003-STX-Drop-migration-poll-times-to-10mS.patch deleted file mode 100644 index 820788da0..000000000 --- a/virt/libvirt/debian/patches/0003-STX-Drop-migration-poll-times-to-10mS.patch +++ /dev/null @@ -1,29 +0,0 @@ -From fdf5e7a69587cebdccf1608f3de48fbdaa8ee7ef Mon Sep 17 00:00:00 2001 -From: Ludovic Beliveau -Date: Mon, 21 Mar 2016 18:15:20 -0400 -Subject: [PATCH] STX: Drop migration poll times to 10mS - -Signed-off-by: Jim Somerville -Signed-off-by: Thales Elero Cervi ---- - src/qemu/qemu_migration.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c -index 5353c7ee0..741ab986a 100644 ---- a/src/qemu/qemu_migration.c -+++ b/src/qemu/qemu_migration.c -@@ -1846,8 +1846,8 @@ qemuMigrationSrcWaitForCompletion(virQEMUDriverPtr driver, - return -2; - } - } else { -- /* Poll every 50ms for progress & to allow cancellation */ -- struct timespec ts = { .tv_sec = 0, .tv_nsec = 50 * 1000 * 1000ull }; -+ /* Poll every 10ms for progress & to allow cancellation */ -+ struct timespec ts = { .tv_sec = 0, .tv_nsec = 10 * 1000 * 1000ull }; - - virObjectUnlock(vm); - nanosleep(&ts, NULL); --- -2.25.1 - diff --git a/virt/libvirt/debian/patches/0004-STX-DPDK-parms-handling.patch b/virt/libvirt/debian/patches/0004-STX-DPDK-parms-handling.patch deleted file mode 100644 index 165495934..000000000 --- a/virt/libvirt/debian/patches/0004-STX-DPDK-parms-handling.patch +++ /dev/null @@ -1,351 +0,0 @@ -From e4c5a64fb4134ce2a57fe5263824ed5e85ec97eb Mon Sep 17 00:00:00 2001 -From: Ludovic Beliveau -Date: Tue, 22 Mar 2016 09:58:36 -0400 -Subject: [PATCH] STX: DPDK parms handling - -Signed-off-by: Jim Somerville -[ Removed deprecated macros ] -Signed-off-by: Thales Elero Cervi ---- - src/conf/domain_conf.c | 152 ++++++++++++++++++++++++++++++++++++++++ - src/conf/domain_conf.h | 25 +++++++ - src/qemu/qemu.conf | 4 +- - src/qemu/qemu_command.c | 35 +++++++++ - 4 files changed, 214 insertions(+), 2 deletions(-) - -diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c -index 70d29475d..e760e61fb 100644 ---- a/src/conf/domain_conf.c -+++ b/src/conf/domain_conf.c -@@ -1195,6 +1195,14 @@ VIR_ENUM_IMPL(virDomainVsockModel, - "virtio-non-transitional", - ); - -+/* STX: DPDK Customization */ -+VIR_ENUM_IMPL(virDomainDpdkProcess, -+ VIR_DOMAIN_DPDK_PROCTYPE_LAST, -+ "auto", -+ "primary", -+ "secondary", -+); -+ - VIR_ENUM_IMPL(virDomainDiskDiscard, - VIR_DOMAIN_DISK_DISCARD_LAST, - "default", -@@ -1612,6 +1620,103 @@ virBlkioDeviceArrayClear(virBlkioDevicePtr devices, - VIR_FREE(devices[i].path); - } - -+/** -+ * STX: virDomainDpdkParamsDefPtr -+ * -+ * this function parses a XML node: -+ * -+ * -+ * -+ * -+ * -+ * -+ * -+ * -+ * and fills a virDpdkParams struct. -+ */ -+static int -+virDomainDpdkParamsParseXML(xmlNodePtr ctxt, -+ virDomainDpdkParamsDefPtr dpdk) -+{ -+ char *channels = NULL; -+ char *process_type = NULL; -+ char *file_prefix = NULL; -+ char *cpu_list = NULL; -+ xmlNodePtr cur; -+ int ret = -EINVAL; -+ -+ cur = ctxt->children; -+ while (cur != NULL) { -+ if (cur->type == XML_ELEMENT_NODE) { -+ if (!process_type && xmlStrEqual(cur->name, BAD_CAST "process")) { -+ process_type = virXMLPropString(cur, "type"); -+ } -+ if (!file_prefix && xmlStrEqual(cur->name, BAD_CAST "file")) { -+ file_prefix = virXMLPropString(cur, "prefix"); -+ } -+ if (!cpu_list && xmlStrEqual(cur->name, BAD_CAST "cpu")) { -+ cpu_list = virXMLPropString(cur, "list"); -+ } -+ if (!channels && xmlStrEqual(cur->name, BAD_CAST "memory")) { -+ channels = virXMLPropString(cur, "channels"); -+ } -+ } -+ cur = cur->next; -+ } -+ -+ if (!process_type) { -+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, -+ _("missing DPDK process type")); -+ goto error; -+ } -+ if (!file_prefix) { -+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, -+ _("missing DPDK file prefix")); -+ goto error; -+ } -+ if (!cpu_list) { -+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, -+ _("missing DPDK CPU list")); -+ goto error; -+ } -+ if (!channels) { -+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, -+ _("missing DPDK memory channel count")); -+ goto error; -+ } -+ -+ dpdk->process_type = virDomainDpdkProcessTypeFromString(process_type); -+ if (virStrToLong_ui(channels, NULL, 10, &dpdk->nchannels) < 0) { -+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, -+ _("could not parse DPDK memory channels %s"), -+ channels); -+ goto error; -+ } -+ if (virBitmapParse(cpu_list, &dpdk->cpumask, 128) < 0) { -+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, -+ _("could not parse DPDK CPU list %s"), -+ cpu_list); -+ goto error; -+ } -+ if (!(dpdk->file_prefix = g_strdup(file_prefix))) { -+ goto error; -+ } -+ -+ ret = 0; -+ -+cleanup: -+ VIR_FREE(process_type); -+ VIR_FREE(file_prefix); -+ VIR_FREE(cpu_list); -+ VIR_FREE(channels); -+ -+ return ret; -+error: -+ virDomainDpdkParamsDefFree(dpdk); -+ ret = -EINVAL; -+ goto cleanup; -+} -+ - /** - * virDomainBlkioDeviceParseXML - * -@@ -3221,6 +3326,16 @@ virDomainClockDefClear(virDomainClockDefPtr def) - VIR_FREE(def->timers); - } - -+/* STX: DPDK Customization */ -+void -+virDomainDpdkParamsDefFree(virDomainDpdkParamsDefPtr dpdk) -+{ -+ if (!dpdk) -+ return; -+ -+ virBitmapFree(dpdk->cpumask); -+ VIR_FREE(dpdk->file_prefix); -+} - - static bool - virDomainIOThreadIDArrayHasPin(virDomainDefPtr def) -@@ -3397,6 +3512,10 @@ void virDomainDefFree(virDomainDefPtr def) - virDomainVcpuDefFree(def->vcpus[i]); - VIR_FREE(def->vcpus); - -+ /* STX: DPDK Customization */ -+ virDomainDpdkParamsDefFree(def->dpdk); -+ VIR_FREE(def->dpdk); -+ - /* hostdevs must be freed before nets (or any future "intelligent - * hostdevs") because the pointer to the hostdev is really - * pointing into the middle of the higher level device's object, -@@ -19786,6 +19905,15 @@ virDomainDefParseMemory(virDomainDefPtr def, - if (virXPathBoolean("boolean(./memoryBacking/discard)", ctxt)) - def->mem.discard = VIR_TRISTATE_BOOL_YES; - -+ /* STX: Extract dpdk parameters */ -+ if ((node = virXPathNode("./dpdk", ctxt))) { -+ def->dpdk = (virDomainDpdkParamsDefPtr)calloc(1, sizeof(*(def->dpdk))); -+ if (def->dpdk == NULL) -+ goto error; -+ if (virDomainDpdkParamsParseXML(node, def->dpdk) < 0) -+ goto error; -+ } -+ - return 0; - - error: -@@ -28466,6 +28594,8 @@ virDomainDefFormatInternalSetRootName(virDomainDefPtr def, - unsigned char *uuid; - char uuidstr[VIR_UUID_STRING_BUFLEN]; - const char *type = NULL; -+ /* STX: DPDK Customization */ -+ char *cpu_list = NULL; - int n; - size_t i; - -@@ -28511,6 +28641,28 @@ virDomainDefFormatInternalSetRootName(virDomainDefPtr def, - virBufferEscapeString(buf, "%s\n", - def->description); - -+ /* STX: DPDK Customization */ -+ if (def->dpdk) { -+ virBufferAsprintf(buf, " \n"); -+ if (!(type = virDomainDpdkProcessTypeToString(def->dpdk->process_type))) { -+ virReportError(VIR_ERR_INTERNAL_ERROR, -+ _("unexpected DPDK process type %d"), -+ def->dpdk->process_type); -+ return -1; -+ } -+ if (!(cpu_list = virBitmapFormat(def->dpdk->cpumask))) { -+ virReportError(VIR_ERR_INTERNAL_ERROR, -+ _("unexpected CPU CPU list")); -+ return -1; -+ } -+ virBufferAsprintf(buf, " \n", type); -+ virBufferAsprintf(buf, " \n", def->dpdk->file_prefix); -+ virBufferAsprintf(buf, " \n", cpu_list); -+ virBufferAsprintf(buf, " \n", def->dpdk->nchannels); -+ virBufferAsprintf(buf, " \n"); -+ VIR_FREE(cpu_list); -+ } -+ - if (def->metadata) { - g_autoptr(xmlBuffer) xmlbuf = NULL; - int oldIndentTreeOutput = xmlIndentTreeOutput; -diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h -index ec43bbe18..c5a0a16d3 100644 ---- a/src/conf/domain_conf.h -+++ b/src/conf/domain_conf.h -@@ -2143,6 +2143,24 @@ struct _virDomainOSDef { - virDomainBIOSDef bios; - }; - -+/* STX: DPDK Customization */ -+enum virDomainDpdkProcessType { -+ VIR_DOMAIN_DPDK_PROCTYPE_AUTO, -+ VIR_DOMAIN_DPDK_PROCTYPE_PRIMARY, -+ VIR_DOMAIN_DPDK_PROCTYPE_SECONDARY, -+ -+ VIR_DOMAIN_DPDK_PROCTYPE_LAST -+}; -+ -+typedef struct _virDomainDpdkParamsDef virDomainDpdkParamsDef; -+typedef virDomainDpdkParamsDef *virDomainDpdkParamsDefPtr; -+struct _virDomainDpdkParamsDef { -+ enum virDomainDpdkProcessType process_type; -+ char *file_prefix; -+ unsigned nchannels; -+ virBitmapPtr cpumask; -+}; -+ - typedef enum { - VIR_DOMAIN_TIMER_NAME_PLATFORM = 0, - VIR_DOMAIN_TIMER_NAME_PIT, -@@ -2569,6 +2587,9 @@ struct _virDomainDef { - char *title; - char *description; - -+ /* STX: DPDK Customization */ -+ virDomainDpdkParamsDefPtr dpdk; -+ - virDomainBlkiotune blkio; - virDomainMemtune mem; - -@@ -3062,6 +3083,8 @@ int virDomainObjWaitUntil(virDomainObjPtr vm, - - void virDomainPanicDefFree(virDomainPanicDefPtr panic); - void virDomainResourceDefFree(virDomainResourceDefPtr resource); -+/* STX: DPDK Customization */ -+void virDomainDpdkParamsDefFree(virDomainDpdkParamsDefPtr dpdk); - void virDomainGraphicsDefFree(virDomainGraphicsDefPtr def); - const char *virDomainInputDefGetPath(virDomainInputDefPtr input); - void virDomainInputDefFree(virDomainInputDefPtr def); -@@ -3711,6 +3734,8 @@ VIR_ENUM_DECL(virDomainRNGBackend); - VIR_ENUM_DECL(virDomainTPMModel); - VIR_ENUM_DECL(virDomainTPMBackend); - VIR_ENUM_DECL(virDomainTPMVersion); -+/* STX: DPDK Customization */ -+VIR_ENUM_DECL(virDomainDpdkProcess); - VIR_ENUM_DECL(virDomainMemoryModel); - VIR_ENUM_DECL(virDomainMemoryBackingModel); - VIR_ENUM_DECL(virDomainMemorySource); -diff --git a/src/qemu/qemu.conf b/src/qemu/qemu.conf -index 0c1054f19..754161254 100644 ---- a/src/qemu/qemu.conf -+++ b/src/qemu/qemu.conf -@@ -516,11 +516,11 @@ - # user = "+0" # Super user (uid=0) - # user = "100" # A user named "100" or a user with uid=100 - # --#user = "root" -+user = "root" - - # The group for QEMU processes run by the system instance. It can be - # specified in a similar way to user. --#group = "root" -+group = "root" - - # Whether libvirt should dynamically change file ownership - # to match the configured user/group above. Defaults to 1. -diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index 6f970a312..4f2908085 100644 ---- a/src/qemu/qemu_command.c -+++ b/src/qemu/qemu_command.c -@@ -1873,6 +1873,35 @@ qemuCommandAddExtDevice(virCommandPtr cmd, - return 0; - } - -+/* STX: DPDK Customization */ -+static int -+qemuBuildDpdkArgStr(virCommandPtr cmd, -+ const virDomainDpdkParamsDefPtr dpdk) -+{ -+ char *cpumask; -+ -+ if (!dpdk) { -+ return 0; -+ } -+ -+ cpumask = virBitmapToString(dpdk->cpumask); -+ if (!cpumask) { -+ virReportError(VIR_ERR_INTERNAL_ERROR, -+ _("Unable to format DPDK cpumask as string")); -+ return -1; -+ } -+ -+ virCommandAddArgFormat(cmd, "-c %s", cpumask); -+ virCommandAddArgFormat(cmd, "-n %u", dpdk->nchannels); -+ virCommandAddArgFormat(cmd, "--proc-type=%s", "secondary"); -+ virCommandAddArgFormat(cmd, "--file-prefix=%s", dpdk->file_prefix); -+ virCommandAddArg(cmd, "--"); -+ virCommandAddArg(cmd, "-enable-dpdk"); -+ VIR_FREE(cpumask); -+ -+ return 0; -+} -+ - static int - qemuBuildFloppyCommandLineControllerOptions(virCommandPtr cmd, - const virDomainDef *def, -@@ -9816,6 +9845,12 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, - virCommandAddEnvXDG(cmd, priv->libDir); - } - -+ /* STX: DPDK Customization */ -+ if (def->dpdk) { -+ if (qemuBuildDpdkArgStr(cmd, def->dpdk) < 0) -+ return NULL; -+ } -+ - if (qemuBuildNameCommandLine(cmd, cfg, def, qemuCaps) < 0) - return NULL; - --- -2.25.1 - diff --git a/virt/libvirt/debian/patches/0005-STX-Fixed-default-libvirtd-systemd-service.patch b/virt/libvirt/debian/patches/0005-STX-Fixed-default-libvirtd-systemd-service.patch deleted file mode 100644 index b51936f50..000000000 --- a/virt/libvirt/debian/patches/0005-STX-Fixed-default-libvirtd-systemd-service.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 28b73b8bcb7f010f3d7ff026056d1284b6172e8c Mon Sep 17 00:00:00 2001 -From: Ludovic Beliveau -Date: Tue, 29 Mar 2016 19:51:01 -0400 -Subject: [PATCH] STX: Fixed default libvirtd systemd service - -- 'Restart=no' (pmond will monitor the process) -- 'PIDFile=/var/run/libvirtd.pid' (pmond uses the pidfile to monitor the - processes) - -Signed-off-by: Jim Somerville -Signed-off-by: Thales Elero Cervi ---- - src/remote/libvirtd.service.in | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in -index cc0d4e369..19e9526a5 100644 ---- a/src/remote/libvirtd.service.in -+++ b/src/remote/libvirtd.service.in -@@ -32,7 +32,7 @@ EnvironmentFile=-@sysconfdir@/sysconfig/libvirtd - ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS - ExecReload=/bin/kill -HUP $MAINPID - KillMode=process --Restart=on-failure -+Restart=no - # At least 1 FD per guest, often 2 (eg qemu monitor + qemu agent). - # eg if we want to support 4096 guests, we'll typically need 8192 FDs - # If changing this, also consider virtlogd.service & virtlockd.service -@@ -49,6 +49,7 @@ TasksMax=32768 - # with program takes 12k per guest. After rounding up we will get 64M to - # support 4096 guests. - LimitMEMLOCK=64M -+PIDFile=/var/run/libvirtd.pid - - [Install] - WantedBy=multi-user.target --- -2.25.1 - diff --git a/virt/libvirt/debian/patches/0006-STX-Adding-systemd-dependencies-against-pmon.service.patch b/virt/libvirt/debian/patches/0006-STX-Adding-systemd-dependencies-against-pmon.service.patch deleted file mode 100644 index 90e67bb0a..000000000 --- a/virt/libvirt/debian/patches/0006-STX-Adding-systemd-dependencies-against-pmon.service.patch +++ /dev/null @@ -1,27 +0,0 @@ -From d8b544aca712c9a84839100a6d61506fc0f7a16e Mon Sep 17 00:00:00 2001 -From: Don Penney -Date: Sun, 2 Oct 2016 18:12:51 -0400 -Subject: [PATCH] STX: Adding systemd dependencies against pmon.service - -Signed-off-by: Jim Somerville -[ Trimmed the shortlog ] -Signed-off-by: Thales Elero Cervi ---- - src/remote/libvirtd.service.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in -index 19e9526a5..b12bad4d9 100644 ---- a/src/remote/libvirtd.service.in -+++ b/src/remote/libvirtd.service.in -@@ -21,6 +21,7 @@ After=local-fs.target - After=remote-fs.target - After=systemd-logind.service - After=systemd-machined.service -+Before=pmon.service - After=xencommons.service - Conflicts=xendomains.service - Documentation=man:libvirtd(8) --- -2.25.1 - diff --git a/virt/libvirt/debian/patches/0007-STX-Stop-processing-memory-stats-if-balloon-info.patch b/virt/libvirt/debian/patches/0007-STX-Stop-processing-memory-stats-if-balloon-info.patch deleted file mode 100644 index b21db91c4..000000000 --- a/virt/libvirt/debian/patches/0007-STX-Stop-processing-memory-stats-if-balloon-info.patch +++ /dev/null @@ -1,35 +0,0 @@ -From dedd074269d21f5eb5114705baac1ae43a166e8a Mon Sep 17 00:00:00 2001 -From: Jim Somerville -Date: Tue, 19 Dec 2017 16:50:34 -0500 -Subject: [PATCH] STX: Stop processing memory stats if balloon fails - -We were seeing deadlock on the second query because the VM -had already been destroyed. In that case, the first query -fails but unfortunately we ignore the return code and charge -ahead anyway and do the second query which then hangs. We -now respect the return code if it indicates failure on the -first query. - -Signed-off-by: Jim Somerville -[ Trimmed the shortlog ] -Signed-off-by: Thales Elero Cervi ---- - src/qemu/qemu_monitor_json.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c -index 8a75a2734..d2a21ebbd 100644 ---- a/src/qemu/qemu_monitor_json.c -+++ b/src/qemu/qemu_monitor_json.c -@@ -2260,6 +2260,8 @@ int qemuMonitorJSONGetMemoryStats(qemuMonitorPtr mon, - int got = 0; - - ret = qemuMonitorJSONGetBalloonInfo(mon, &mem); -+ if (ret < 0) -+ goto cleanup; - if (ret == 1 && (got < nr_stats)) { - stats[got].tag = VIR_DOMAIN_MEMORY_STAT_ACTUAL_BALLOON; - stats[got].val = mem; --- -2.25.1 - diff --git a/virt/libvirt/debian/patches/0008-STX-Increase-timeout-for-connecting-to-monitor.patch b/virt/libvirt/debian/patches/0008-STX-Increase-timeout-for-connecting-to-monitor.patch deleted file mode 100644 index 5d3e1d5be..000000000 --- a/virt/libvirt/debian/patches/0008-STX-Increase-timeout-for-connecting-to-monitor.patch +++ /dev/null @@ -1,38 +0,0 @@ -From c49366803061c7fdac854cee5920bc91ce3552ba Mon Sep 17 00:00:00 2001 -From: Jim Somerville -Date: Fri, 2 Feb 2018 13:20:24 -0500 -Subject: [PATCH] STX: Increase timeout for connecting to monitor - -When launching a large number of VMs concurrently on a -single host, eg. 10, it can take a while -for them to zero memory and attach to the monitor. After -measuring many such delays in this concurrent launch -stress test, we conclude that an extra minute -of waiting should suffice. - -Signed-off-by: Jim Somerville -Signed-off-by: Thales Elero Cervi ---- - src/qemu/qemu_process.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c -index 202d86728..6dae07215 100644 ---- a/src/qemu/qemu_process.c -+++ b/src/qemu/qemu_process.c -@@ -2024,6 +2024,12 @@ qemuConnectMonitor(virQEMUDriverPtr driver, virDomainObjPtr vm, int asyncJob, - * 1GiB of guest RAM. */ - timeout = vm->def->mem.total_memory / (1024 * 1024); - -+ /* STX: When launching a number of large VMs concurrently on -+ * a single host, the above timeout may not be good enough. -+ * Pad the timeout to deal with delays seen under stress testing. -+ */ -+ timeout = timeout + 60; /* Wait for a full extra minute */ -+ - ignore_value(virTimeMillisNow(&priv->monStart)); - - mon = qemuMonitorOpen(vm, --- -2.25.1 - diff --git a/virt/libvirt/debian/patches/0009-STX-pci-sriov-perform-limited-retry-on-netlink.patch b/virt/libvirt/debian/patches/0009-STX-pci-sriov-perform-limited-retry-on-netlink.patch deleted file mode 100644 index fb3445307..000000000 --- a/virt/libvirt/debian/patches/0009-STX-pci-sriov-perform-limited-retry-on-netlink.patch +++ /dev/null @@ -1,163 +0,0 @@ -From 0d92d8a0f0b53c32490ce9623e1a402eb369a7d4 Mon Sep 17 00:00:00 2001 -From: Jim Somerville -Date: Sun, 25 Feb 2018 11:32:54 -0500 -Subject: [PATCH] STX: pci-sriov perform limited retry on netlink - -We now also perform retries on other netlink errors that previously -would have just done an immediate bailout. - -Signed-off-by: Jim Somerville -[ Trimmed shortlog ] -Signed-off-by: Thales Elero Cervi ---- - src/util/virnetdev.c | 100 +++++++++++++++++++++++++++---------------- - 1 file changed, 62 insertions(+), 38 deletions(-) - -diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c -index a73e5f72f..f787b4919 100644 ---- a/src/util/virnetdev.c -+++ b/src/util/virnetdev.c -@@ -36,6 +36,7 @@ - # include - #endif - #include -+#include - - #ifdef __linux__ - # include -@@ -1533,6 +1534,8 @@ static struct nla_policy ifla_vfstats_policy[IFLA_VF_STATS_MAX+1] = { - [IFLA_VF_STATS_MULTICAST] = { .type = NLA_U64 }, - }; - -+#define VIR_NET_DEV_NUM_RETRY 3 -+#define VIR_NET_DEV_DELAY_NS 250000000 - - static int - virNetDevSetVfConfig(const char *ifname, int vf, -@@ -1540,6 +1543,7 @@ virNetDevSetVfConfig(const char *ifname, int vf, - bool *allowRetry) - { - int rc = -1; -+ int i; - char macstr[VIR_MAC_STRING_BUFLEN]; - g_autofree struct nlmsghdr *resp = NULL; - struct nlmsgerr *err; -@@ -1602,50 +1606,53 @@ virNetDevSetVfConfig(const char *ifname, int vf, - nla_nest_end(nl_msg, vfinfo); - nla_nest_end(nl_msg, vfinfolist); - -- if (virNetlinkCommand(nl_msg, &resp, &recvbuflen, 0, 0, -- NETLINK_ROUTE, 0) < 0) -- goto cleanup; -- -- if (recvbuflen < NLMSG_LENGTH(0) || resp == NULL) -- goto malformed_resp; -+ for (i=0; inlmsg_type) { -- case NLMSG_ERROR: -- err = (struct nlmsgerr *)NLMSG_DATA(resp); -- if (resp->nlmsg_len < NLMSG_LENGTH(sizeof(*err))) -+ if (recvbuflen < NLMSG_LENGTH(0) || resp == NULL) - goto malformed_resp; - -- /* if allowRetry is true and the error was EINVAL, then -- * silently return a failure so the caller can retry with a -- * different MAC address -- */ -- if (err->error == -EINVAL && *allowRetry && -- macaddr && !virMacAddrCmp(macaddr, &zeroMAC)) { -- goto cleanup; -- } else if (err->error) { -- /* other errors are permanent */ -- virReportSystemError(-err->error, -- _("Cannot set interface MAC/vlanid to %s/%d " -- "for ifname %s vf %d"), -- (macaddr -- ? virMacAddrFormat(macaddr, macstr) -- : "(unchanged)"), -- vlanid, -- ifname ? ifname : "(unspecified)", -- vf); -- *allowRetry = false; /* no use retrying */ -- goto cleanup; -- } -- break; -+ switch (resp->nlmsg_type) { -+ case NLMSG_ERROR: -+ err = (struct nlmsgerr *)NLMSG_DATA(resp); -+ if (resp->nlmsg_len < NLMSG_LENGTH(sizeof(*err))) -+ goto malformed_resp; - -- case NLMSG_DONE: -- break; -+ /* if allowRetry is true and the error was EINVAL, then -+ * silently return a failure so the caller can retry with a -+ * different MAC address -+ */ -+ if (err->error == -EINVAL && *allowRetry && -+ macaddr && !virMacAddrCmp(macaddr, &zeroMAC)) { -+ goto cleanup; -+ } else if (err->error) { -+ /* other errors are permanent */ -+ virReportSystemError(-err->error, -+ _("Cannot set interface MAC/vlanid to %s/%d " -+ "for ifname %s vf %d"), -+ (macaddr -+ ? virMacAddrFormat(macaddr, macstr) -+ : "(unchanged)"), -+ vlanid, -+ ifname ? ifname : "(unspecified)", -+ vf); -+ *allowRetry = false; /* no use retrying */ -+ /* STX: but we do attempt local retry here within this procedure -+ * goto cleanup; */ -+ goto retry; -+ } -+ break; - -- default: -- goto malformed_resp; -- } -+ case NLMSG_DONE: -+ break; -+ -+ default: -+ goto malformed_resp; -+ } - -- rc = 0; -+ rc = 0; - cleanup: - VIR_DEBUG("RTM_SETLINK %s vf %d MAC=%s vlanid=%d - %s", - ifname, vf, -@@ -1664,6 +1671,23 @@ virNetDevSetVfConfig(const char *ifname, int vf, - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("allocated netlink buffer is too small")); - goto cleanup; -+ -+ /*STX: local retry logic*/ -+ retry: -+ VIR_ERROR(_("Retry: %u"), i); -+ { -+ static struct timespec delay = { -+ .tv_sec = 0, -+ .tv_nsec = VIR_NET_DEV_DELAY_NS }; -+ -+ if (nanosleep(&delay, NULL) < 0) { -+ virReportSystemError(errno, "%s", _("Failed to sleep")); -+ goto cleanup; -+ } -+ } -+ -+ } /* End of local retry loop */ -+ goto cleanup; /* we exhausted our local retries */ - } - - /** --- -2.25.1 - diff --git a/virt/libvirt/debian/patches/series b/virt/libvirt/debian/patches/series deleted file mode 100644 index 69b145c8f..000000000 --- a/virt/libvirt/debian/patches/series +++ /dev/null @@ -1,9 +0,0 @@ -0001-STX-CPU-pinning-not-working-over-live-migration.patch -0002-STX-System-Logging-set-group-read-permission-on-log.patch -0003-STX-Drop-migration-poll-times-to-10mS.patch -0004-STX-DPDK-parms-handling.patch -0005-STX-Fixed-default-libvirtd-systemd-service.patch -0006-STX-Adding-systemd-dependencies-against-pmon.service.patch -0007-STX-Stop-processing-memory-stats-if-balloon-info.patch -0008-STX-Increase-timeout-for-connecting-to-monitor.patch -0009-STX-pci-sriov-perform-limited-retry-on-netlink.patch diff --git a/virt/libvirt/debian/stx-libvirt.stable_docker_image b/virt/libvirt/debian/stx-libvirt.stable_docker_image deleted file mode 100644 index 85c8fefae..000000000 --- a/virt/libvirt/debian/stx-libvirt.stable_docker_image +++ /dev/null @@ -1,2 +0,0 @@ -BUILDER=docker -LABEL=stx-libvirt diff --git a/virt/libvirt/libvirt/hooks/qemu b/virt/libvirt/libvirt/hooks/qemu deleted file mode 100755 index 9bf67d436..000000000 --- a/virt/libvirt/libvirt/hooks/qemu +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2019 Wind River Systems, Inc. -# -# SPDX-License-Identifier: Apache-2.0 -# -# This script logs to user.log -# -# The script is called with the following parameters -# e.g. /etc/libvirt/hooks/qemu -# - -# Save the instance's XML. The guest qemu hook scrips are given the full XML description -# on their stdin. -XML_DATA=$(/bin/cat) - -GUEST_NAME=$1 - -shift -OPERATION=$* - -logger -p info -t ${0} "hook qemu file guest ${GUEST_NAME} with operation ${OPERATION}" - -# CPU Low latency setup: -# -# A cpu is set to low latency when: -# 1) host is set to subfunction=lowlatency in platform.conf and -# 2) domain has dedicated pinning -# -# example of section when domain has dedicated pinning: -# -# -# -# -# -# -# -# example of section when domain has shared pinning: -# -# 4096 -# -# -# -# -# -# - -if [ "${OPERATION}" == "prepare begin -" ] || [ "${OPERATION}" == "stopped end -" ]; then - # verify this host is set as lowlatency - lowlat=$(cat /etc/platform/platform.conf 2>/dev/null | grep -E 'subfunction.*lowlatency') - if [ -n "${lowlat}" ]; then - # grab the settings and remove single quotes - CPUTUNE=$(echo ${XML_DATA} | grep -oP '(?<=)' | sed "s/'//g") - - # grab all cpuset pinned to a unique CPU. Treat them as dedicated - CPUSET=($(echo ${CPUTUNE} | grep -oP '(?<=cpuset=)[^/]+(?=.+emulator)' | grep -vP '[^0-9]')) - if [ ${#CPUSET[@]} -ne 0 ]; then - # convert to a comma separated list - CPUS=$(IFS=, ; echo "${CPUSET[*]}") - if [ "${OPERATION}" == "prepare begin -" ]; then - /usr/bin/set-cpu-wakeup-latency.sh "low" "${CPUS}" - else - /usr/bin/set-cpu-wakeup-latency.sh "high" "${CPUS}" - fi - fi - fi -fi - -exit 0 - diff --git a/virt/libvirt/libvirt/libvirt.logrotate b/virt/libvirt/libvirt/libvirt.logrotate deleted file mode 100644 index a60915995..000000000 --- a/virt/libvirt/libvirt/libvirt.logrotate +++ /dev/null @@ -1,14 +0,0 @@ -/var/log/libvirt/libvirtd.log -{ - nodateext - size 10M - start 1 - rotate 20 - missingok - notifempty - compress - sharedscripts - postrotate - /etc/init.d/syslog reload > /dev/null 2>&1 || true - endscript -} diff --git a/virt/libvirt/libvirt/libvirt.lxc b/virt/libvirt/libvirt/libvirt.lxc deleted file mode 100644 index 81ea6210b..000000000 --- a/virt/libvirt/libvirt/libvirt.lxc +++ /dev/null @@ -1,15 +0,0 @@ -/var/log/libvirt/lxc/*.log -{ - nodateext - size 10M - start 1 - rotate 20 - missingok - notifempty - compress - sharedscripts - postrotate - /etc/init.d/syslog reload > /dev/null 2>&1 || true - endscript -} - diff --git a/virt/libvirt/libvirt/libvirt.qemu b/virt/libvirt/libvirt/libvirt.qemu deleted file mode 100644 index 470ef8cda..000000000 --- a/virt/libvirt/libvirt/libvirt.qemu +++ /dev/null @@ -1,15 +0,0 @@ -/var/log/libvirt/qemu/*.log -{ - nodateext - size 10M - start 1 - rotate 4 - missingok - notifempty - compress - sharedscripts - postrotate - /etc/init.d/syslog reload > /dev/null 2>&1 || true - endscript -} - diff --git a/virt/libvirt/libvirt/libvirt.uml b/virt/libvirt/libvirt/libvirt.uml deleted file mode 100644 index 1c26219f0..000000000 --- a/virt/libvirt/libvirt/libvirt.uml +++ /dev/null @@ -1,15 +0,0 @@ -/var/log/libvirt/uml/*.log -{ - nodateext - size 10M - start 1 - rotate 4 - missingok - notifempty - compress - sharedscripts - postrotate - /etc/init.d/syslog reload > /dev/null 2>&1 || true - endscript -} - diff --git a/virt/qemu/.gitignore b/virt/qemu/.gitignore deleted file mode 100644 index 1878aa832..000000000 --- a/virt/qemu/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -!.distro -.distro/centos7/rpmbuild/RPMS -.distro/centos7/rpmbuild/SRPMS -.distro/centos7/rpmbuild/BUILD -.distro/centos7/rpmbuild/BUILDROOT -.distro/centos7/rpmbuild/SOURCES/qemu*tar.gz diff --git a/virt/qemu/PKG-INFO b/virt/qemu/PKG-INFO deleted file mode 100644 index be89f193d..000000000 --- a/virt/qemu/PKG-INFO +++ /dev/null @@ -1,19 +0,0 @@ -Metadata-Version: 1.1 -Name: qemu -Version: 2.3.0 -Summary: QEMU is a FAST! processor emulator -Home-page: -Author: Windriver -Author-email: info@windriver.com -License: Apache-2.0 - -Description: -qemu-kvm is an open source virtualizer that provides hardware emulation for -the KVM hypervisor. qemu-kvm acts as a virtual machine monitor together with -the KVM kernel modules, and emulates the hardware for a full system such as -a PC and its assocated peripherals. - -As qemu-kvm requires no host kernel patches to run, it is safe and easy to use. - - -Platform: UNKNOWN diff --git a/virt/qemu/README b/virt/qemu/README deleted file mode 100644 index 687cb34fd..000000000 --- a/virt/qemu/README +++ /dev/null @@ -1,17 +0,0 @@ -Get the RedHat source rpm from: -$ wget wget http://cbs.centos.org/kojifiles/packages/qemu-kvm-ev/2.3.0/31.el7_2.7.1/src/qemu-kvm-ev-2.3.0-31.el7_2.7.1.src.rpm - -Uncompress the source rpm: -$ rpm2cpio qemu-kvm-ev-2.3.0-31.el7_2.7.1.src.rpm | cpio -idmv - -All the patches from the redhat source rpm have been applied in git/qemu using -scripts/autopatch.sh. - -Some of these patches can't be applied cleanly with 'git am'. So this script -attempd to execute 'git am' on each of them, if it fails it tries to patch -the files manually with 'git apply --index'. - -A git tag 'qemu-kvm-ev-2.3.0-31.el7_2.7.1' has been added to the last patch -applied. - -The Titanium Cloud specific patches will be added after this tag. diff --git a/virt/qemu/centos/build_srpm.data b/virt/qemu/centos/build_srpm.data deleted file mode 100644 index e6eaf5b00..000000000 --- a/virt/qemu/centos/build_srpm.data +++ /dev/null @@ -1,11 +0,0 @@ -SRC_DIR="$CGCS_BASE/git/qemu" -COPY_LIST="$CGCS_BASE/downloads/kvm-unit-tests.git-4ea7633.tar.bz2 \ - $CGCS_BASE/downloads/keycodemapdb-16e5b07.tar.gz \ - $FILES_BASE/* \ - $PKG_BASE/qemu/qemu_clean \ - $PKG_BASE/qemu/qemu_clean.service \ - $PKG_BASE/qemu/qemu-system-x86.conf" -TIS_BASE_SRCREV=38441756b70eec5807b5f60dad11a93a91199866 -TIS_PATCH_VER=GITREVCOUNT+PKG_GITREVCOUNT - -BUILD_IS_BIG=6 diff --git a/virt/qemu/centos/files/80-kvm.rules b/virt/qemu/centos/files/80-kvm.rules deleted file mode 100644 index e61b48ff3..000000000 --- a/virt/qemu/centos/files/80-kvm.rules +++ /dev/null @@ -1 +0,0 @@ -KERNEL=="kvm", GROUP="kvm", MODE="0666" diff --git a/virt/qemu/centos/files/85-kvm.preset b/virt/qemu/centos/files/85-kvm.preset deleted file mode 100644 index 8024052ec..000000000 --- a/virt/qemu/centos/files/85-kvm.preset +++ /dev/null @@ -1,5 +0,0 @@ -# Enable kvm-setup by default. This can have odd side effects on -# PowerNV systems that aren't intended as KVM hosts, but at present we -# only support RHEL on PowerNV for the purpose of being a RHEV host. - -enable kvm-setup.service diff --git a/virt/qemu/centos/files/95-kvm-memlock.conf b/virt/qemu/centos/files/95-kvm-memlock.conf deleted file mode 100644 index fc59dbe05..000000000 --- a/virt/qemu/centos/files/95-kvm-memlock.conf +++ /dev/null @@ -1,10 +0,0 @@ -# The KVM HV implementation on Power can require a significant amount -# of unswappable memory (about half of which also needs to be host -# physically contiguous) to hold the guest's Hash Page Table (HPT) - -# roughly 1/64th of the guest's RAM size, minimum 16MiB. -# -# These limits allow unprivileged users to start smallish VMs, such as -# those used by libguestfs. -# -* hard memlock 65536 -* soft memlock 65536 diff --git a/virt/qemu/centos/files/99-qemu-guest-agent.rules b/virt/qemu/centos/files/99-qemu-guest-agent.rules deleted file mode 100644 index 8a290abbd..000000000 --- a/virt/qemu/centos/files/99-qemu-guest-agent.rules +++ /dev/null @@ -1,2 +0,0 @@ -SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", \ - TAG+="systemd" ENV{SYSTEMD_WANTS}="qemu-guest-agent.service" diff --git a/virt/qemu/centos/files/README.rhel6-gpxe-source b/virt/qemu/centos/files/README.rhel6-gpxe-source deleted file mode 100644 index bff3160c4..000000000 --- a/virt/qemu/centos/files/README.rhel6-gpxe-source +++ /dev/null @@ -1,9 +0,0 @@ -The ROM images on /usr/share/qemu-kvm/rhel6-*.rom come from the -Red Hat Enterprise Linux 6.4 package gpxe-roms-qemu-0.9.7-6.9.el6.noarch.rpm. - -The source code for those images can be downloaded from: -http://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/gpxe-0.9.7-6.9.el6.src.rpm - -For more information on how to obtain source code for Red Hat Enterprise Linux -software, you can refer to Chapter 1. Obtaining Red Hat Enterprise Linux of the -Red Hat Enterprise Linux Installation Guide. diff --git a/virt/qemu/centos/files/bios-256k.bin b/virt/qemu/centos/files/bios-256k.bin deleted file mode 100644 index 07f2a309c5be4685f1dccdc621874b4d9d3034a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262144 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

URR|ZeW5B5|-+m-X;oG187ce?5G*upM zx4=*29$_1sd;jfNj+>4Q`(Kb*8j4!dE{{Hr`prVu8bye*8ZmysAQ>*?zh?cfT}a7U zPt0+x^&WNlYg|G`#%eQx8L6^d#ldgje?@GsRgqx(PZeFUH-oNn)pFY!Wei~-6nKzC zjgm+SR9tYyE2#&KSOjGG7R#51SMGI{#eBQGOoV%YEi<;6eS$R56wO$Gs{iM{8CS5n-)y-&kJSV zevm$Hq#Z&XjVxMqZKYlRLMf7v_a5@ndVRzE6b*RxDbn3x9UBtOH4}AHKv>0ws2j{E zAqtd{`Zx7AQ5w=6+#g}5sdPi?#O~k=y8P2FY`V}){nY`51VBt`%7cuHbmL0qa|UJc zDq)4iu+cII>HGS~T#Y0s;EviV=_WVbbjQVQu@;1p7bA#_(k%M>s+;O9MlI!;9W{}T z>QWj{t!O+=yx7!u%0c7Ff5)Y56Rj4tjv=S?lUdBR2+;jo^CH_ukeh)lmn|>nMiE4|Pjcuss58@yJ1dlzAb`~!Dbt})Qq8{(g7NKyZ zV%B!Y^d(P7;Y!66cE|KX=C3+_A{~!ny|>Nm_>S{BoL zhj5#oac=yKW>VC&#`aaw0|l z%KuQ;&5D7iu{KXrc0s>~lbcs*KIMLcNN6^Jr!aF4#h^T1+Jlp$eP=aE&uJ`D>4bP9 zv@8*spn}mI6QO0PVy^0riH&U_X;n2c+CkcCj<{M5*?HH9QWDOoWdh0ueekg#@wO)a z&?rJu;OVM9B9+5-YubHx&{AoWU)8eZ?MzR!|9-g?|Gf+mIiY5p-LL3tC`Rz*vVECx zHv{j7+xXW%1Wa`Bj6a*eW}7mfmZM^gs;o`x$9jgwV?EO^bgR4Nuze~o;S!dpIoq<6 zSW;(8HJep6StS%ZSIfq>Sa6iy-7I~X5F`ESsHq|FKjJae#G`Ptr1$kV>0ob)AOzjC zMfGc&AP7x}vh-6n*s>8h*kjO<=ix<=njlC`5TqsuQaipEDFFQt4k^+Wn^}dxSc=YT zixk?TpK6Pg?`exBNf80V8uO3HX>gcd~>iUb8kL> zM6ywa^kD~p5D6lk(men4j=L8^)7E5~HGhCU=ExIze}G>YnYTGM+RyOp5exS7aoB2_z^0=LB9m zD;gAGPCfbjpwO0R;hmu^X2Fa?c9v@g@pF&7(zQ+mA*pH~({3)L3v*{oX{&M70jRK4 z|FzmL>3>qY6OyKtvQv@W4oQB>$JKk4esbw~tMn$CL-U)EjlY|*5li&--0uLY%lOU1 z>}+V!hEHYR<@}jisHRVhaOTekg#)pAc^ZY8rN;4iDsGrLywh9o&05DVaWwxDapk$vdrO6mSlO~V)4~c z(?N{4lWPHw(#=@1F!+!Xqbk1p#`q_7)pj~+w~}UkURD-w1Y%;K_G!G^a-oJ`%(lsV zFwnd@=2ga-R(0R?$kL^K1%!X}UegTs2=>-PWbZlAD%Gx)A~pzztKH|QS&fei>j#Y0 zwWN^!eM%FGo1y)EA-g5>e)#=X-(!-8qp8q?S3HA#+e!$XMk>k7WMs+P?_1LLZyfQe-U(i*1&@;mFmVORdx*OHR z(dwoSSu^)pD4VxY*0Av&E#eZ1304ZGjAe!C8(+_89-Ja#UFI(hCpmw*e(7DQ& zZ$4PAnWuSU+bS>8zqY(zkutVrwbSyh-+B>d?{XLx!(xLj2sDBltSeHLWrax`UoS^7etKf*|P+0Af*!R zDeLiCca4kp2?eD1 z==e0+C7fBQZF!9-8I%w0Hb*07(_*oBX#IYRht{1LWCs*1Hd?3?dT|+>Ko(Cf^J!YF zXGEje36}_p9bt@=njmnMK)$0XM*LZVM{qIn>RgLw6zJ!Q{b?I}!~xB~8jZ5T=qL%| zY|CoeTO>G3AayWL1;x~VHupjlOo0`Ki5R!L?3WfX+yoJHAfW0_ya1UlrAaVB8wmpK zEHqz)-Fw@3W|P5!w9?oksdoYnyD2<{Cccx1E+pzX@wCfB^Qwxo@Zy+01eAcEPpUaU z%LmY$Gaq{2)6V=$na)=U&K%I&GC9phA>uYl9<8}kyj|LA2MbrY{OY*vY8lZ5%318c z<+UQQYbmA&L`OK0d6SRWCrMMw_{l~R>{xhRAMD1W(}C6$S7YdC)f1ES1_s`iF}7+Yh0rgj4nZYp~y;kti!MaA9GB`Ca`yew_~#BdBIOiFUfE;-&9Xf532vdm(7dos#ZcfzFS-*ksXD6yQzyN zoUHRMu{>brc3EXCi4xTxe`1o@Gl!t1{Inj^t4`=Z#Na%2&)bs&03|1QD}`%4#S8-( zx){hKL}9~)5v4q6u}c(*mb=o11s;SVNqt(@DyvCNQK`nRYN+_E=6L9CDoSMJ11b<*X_^Oup9hIz_Z)P`r}5 z3FegkKZ5Jm=E6=L6G39KzR)5LeWh9`07>!}B>5ha!#mupB4psnMOJc^OD?_~HJT`4 zkz5|YV;9(;N{LVI=ednII+>YG3fY(@lt#I?-W$;?2J@}Al-C4zm?3=n&^ z88lM4qSNvY-x?mgR#HtxmiH3uG|89TN+All4K4^=@JbiF)TDPpDlw9^BI(Kiy4=@C zZS4li*3R3adG}k!9$cMNVdaLXSf(hW&6Y75=O?3-helrhg>$`?helr8=U#eI@DneX{cGxccV0f&AFc-pvMGrHO-EO%T&qXD5 zT#0IN*t&g3&-FK(oY1~TG8uG31knr-HIF1ajNuDJyuVj2Uvt9Ke-{{uQDK>QVaeNn z1Tn~Bq)rwiL)M^Z5e=azSq#yqx>qNGn+5R$#&b|D6qbSYMQ$(0(M*Z@j?hsf9?Wrs zF_|uy{Gpi5#64s+*EoTGIAzU(YG6VrD48IcYx+v6|6iyZ1ZqA|g)@q@OrdH_RfzI< zy`v`azk>6!z_Eqk*aVI`-HQTF@X2wqb$2{m!?hymDVRz#)%XKmTKJ+n$ayQvnec`0 z&|@Xl$MWF-I;Q?zP&WkZTQ=H!n(3%?hLZ6q1u-;iKHe)a ziEgYk$u@$yh!Xfp($p;inWw#P_0zLL?^Bs5O#r&DG9z?*gDN=Yv;CbIwHeN271bQJ zC;2RHGIuLAfu#^K`?L7=oH0Pvf;Zsc%iAN}AUcgVZUw}osAFLeJ=w2N*&THyum^pa zOmq2)Skc|*ZIo2+x-o1Xw*jv$Iv>FW7k1=^(riS8mxyB?jx@dt`KF()ah)Nh73TUP z3n6fLS@Bffh<(wuix^gOm5IE{fp9dT;4g<-@d%3aXK8TGt$M)SMNu`11;Sy0&NHiN->7?92OGAVClxO7ahE^-vqHj^C z+j?I!61@d($Ci3KW8Az27w#!tdMcUD3ETo=wEsSjV4IQ;8gJpW$kvk`^v#d4ya zBljd#hx!;qDkNJBAjkmd))SPco_2S$EskgTZ;Z|J$!$H>>H#Fg#b!+#18EoAZ)jFyXC?{Eew?~gqzLA*cq2ldS`e#=+g z_ixawKrF?}Ex0C;Dwz*!%uyjDB0?spkPH*BZ`v?D5ehV(m`5+GvV2?{NHldXj0d_y z)#x?~@#`&SI`8geNtY_syH(QVWYK{UBW1s||4(FG9}w#E6=eCQWqT6C_5EKK17UXy zZZY;$ee4mMRcXX$hkb@;X}gTQiW3=QLP>u~(z*k(H#*J*Ko09?MAgsL_Z;`% z7hV61e)hP&=U5%r?v7P`J=amYoWxn!Iw|HmW+6-Y+8^O!%RHpclzho;(Z7PD&y-xL zC-<_WP|}xch_3piF5oSA{lEVa?Fs#g45XQqlKlFz9Bvps%@ksz8|6Si!m7 z+ZJ12ub(__^bs$nK+UA%d515n-aVKJ^^YbOe7~tq?(K2L$~*^CS1#mXxx^-lpOa-$e}9OLvk*W+Pb}d~zqmmvTEjK{1qh38TpI z(lm^Z=f`0_#klD;61T9uJz(TA3{iGX6(tYOofP4~E7#!+Ea%5RH}05ho8-P0&_+Zw z-rp&J=Bb-SRO7LpHex1~*1HTTi?m*bKr!2uP_-CVDlfuX+q87mda&af*Q0A^QOE+-*)8M&7`6uQK1jJqREAq-dHa*tAh>piLq=cuQN1m@3Oq`+zNA zYFx37(p!yBgqgK5DcMa0))>$6_sA-dce2Z2#-eUX(+6hyc zm1fQrNYwI0ok$fMzN}zpcKu9EGp+B9j?j32I!;SA+o`nryDu+t)c%3o z-aZ;irWP($U*A_Q{(jv&+;br)wiMA6aX9`Lhmi}eK{1er9jWjm69**XN+Mtz>C!-a zd)bBodbV-*GHBWq30}@uBr8|)l?>O=W}`5wy-3|BzTB8X)oIFp6q-Po@z(q>de-_E zMIE@VrT(w-Q?K9Fz;!|&!`zH!LI+vYJscw^3%riegq~X-o4D?Mr z=9|~SjQdXX{a^N5(dqq8TRn$S+{J19^hV71Vu7e!rWYz{{D|7XTr2!OsR)}dInyw5 z3Dpl|?(2n2Pd$zQ0bKAV@BQCeJR=1B<(x}=%|T*+|8rPJ?h@hnPJ|)ft+whxJz(1Q z?SPFVX>odwrvzr>+9hE7=&?^1ete4nqC~9q*b4-xh6@gOz_z)0gJ`E!y05bocW+hLaWanx~@BJfQoC9 zkm|D?65fYA)dE9ef=$CdmKXtFVXrOBW{9E;nR6JEQ%GMwtDt%u|=B-R;Tr4<3(Silb!V>*r5IL01uAUvU! z4g{L`@c3u#>HF_hZ29yKEB8lUe)BJu{U3Y3;S5WKhD!l$O0kzt^~^+Z;AF7B{2Kdy z4D20rPapA8MvED+&+YPl*X16hu0q=kAE7?>-(z>U#qgEw#{5KgG*3tKF8B4w7DxG} zVTB@dpZDu7_vJq86T_&XybjNU&e=B4S7Rp+^K|&K(}D>Tyk}!PABL>2^*l;ieN6Zn zbrf3<>{5DOU@kVMPgUen-eY!ntucl$c*xqm{M_df)oM4|i8Zc`0wveAT-|qqC$EJw z6&ttym{4wqp_#-8=ltr1#&{C4JovSw?=nbB#vWR0oj`bTA0%%3AuW>y=l4b+b_ zA?7I4%#GMBGTttLhR9RLiy|bK7MuNjd$16k6yS)2R2^-F$J8n@fE3!u-MdXKF4E-= zoUw;RUO-M^$X#sg<*Z6th8u9^JoghpARhz*Pmw0F$#+gRn|x@vwR2q~$+TQ47SB`|FbZw`4cX`hJR+uB%G(>Eb!A9Mw+!sTO0TKo;0uBA9<1FKu+yi1V;5ey`)DmtC^7 zh;Mga<9O*2*F(5j0T00hlXo2#*)QS+RmXF@xqRj;o@`Dm)z@8uc@qxkbJD}T$hUxk zxvuNFL8=<6qT-N8sZ_W(pKXlj&39Qh>K)au$>@pL8FRkZ@LUP6M!v8D1#p?wjAU^= z96&>Riwl2gd(35gv<~yp!Bck;d-uB%E6RJsiYP|w08Yt1;QW}}P4}?xI_5p}uj4PQ zsek79vCQ3B&v^Qh)W&SKCb}(V4d0aKElr|89+~a~(($ZXOKE$JrqV{WRjIUpu~=U3 zSyg;19r+HT2QiA2wAl%?(xF{9$G4Q~eZ&JUonT;S;40>c_cnA=knsgPQA~U7ZxBSLzsKo{Z{B(!gQMaS{sFhb@InK2;!2)1lRfiq!J_I#L6B;M!uZC=K$wbj` zD+QEp8H1meyMd2%f$TSTbE>~Z-g6Hh!a{Eubh;Q#ZtMV*G682i|CCy4hz;b%atRd) zFopk;@ZiN1g;|nQPCF`Lo4R#@271stEgaegO*KU(Sk~$>hA*p0hNP-Z0M0y zZf$pc>!=aUiPGu^QerKR+P866J#Yc8c3cf9BsLb5NJsdt2ho(K8WFLeJ);@-Rls33 zlgfA$7iNGiHY4*SvWOtK(2vL(xQ{eqwYt*k*m_)@F~Mb~Svy?+FUdhml}6S!=AjhpYL9~Xq)pf~b!;B^x@ z>n4ho;&|oF2zy5=?=anpG>O-^4j4JK7Rd=vTv>%(BMo}8;lvvZ<1Jv2cO%Cej)#(1 zuK6CYdQVsb4z__|q7wp2tzPH+@*)cdtbly_uiYf{v6(3JUiFQjRDC}QtxiYn5Il~p zH|gJn4NhU8;2+FOHr9F4HS?rvzMigD%Pv}0SoE{(5A=5C12nW;rdi~%tc1JmMwvM) zBEzM}mi?MfCB-ri5zE4kN(k6vH9E1Opmk?irboq~GxT4<&I2 znw)9=T#O;|&8z-SddX2+M$0lJ`hlyMiMkatQDAA@DPz%mVl`F zAy>g<+RgVanA=1(;Sltu4)&xS(;BF~W<0nk)Q%}lX+rfPGco?a6cG3w(Mr}&Q@)rj zP3a9aCEC`*+H!_#`Z7_-z+l%1Uo5pqC4;;X&9mBGb)3Vq+C9fP+#r07V$~e?2KYfK zPSP8DUH}20&=GR4vPirwtcB37Gye9Kic6PLjJ{w>c)A$1BQ6>*)=Fr^D}}tx*8U$_ z+xwbn*&0&@iM48RnoO2xeX2DZ3AX2`DF_vDPNVD%sspljXp*0X4G1!fE_gtrxabSQ zWC3rSLa4i0T#71Ux!kV>PwV}^WJBL5ibd4{s6l2e`4|t~3~UKz(N2?!wwduf5R5ZL zOs&ossIIy6M58QUUP#`SjQ=;zrI%@=L0zByE8*J(fd*lahzm}bOFB{WI(TZi zlHsU?rAt}sX6+=ACdV!|zNVVGvZ1m9F#cJxuyeN@iq@?zGfvrDnN3`S$XgY3!GJ|L zW&}?ySBn$Wp&0s+vuay;tZ;7iS{e5B2#X4JjRxJYI-9GM@WfnHX5b7QuoFs1#WM)!qOK~F4UENxU; zrVpKTY~4o_W9Ba;MqUjbIl*mkljRM%ke|lVf~{6fKL}87qXppIYQerdw5dDu1r}VU zJG?P8Ft3E5V8gpHqPZzrnSs5MIQ*!uIwtqUq8ACOVdaRQN-2MyNHU4=jZ^mrK8MHT z(vp)!jmCZ>z3X_e7EpM7Gi|;*5?5cTzoq}v(w_VdDf3A=2a`3ES5K_4BRJ0I*{0me z8!WrF2(VzL(gOH*ZH4`-FGO3Rr83#uj6s;LEuzk#D@}D1m6=YFlbPjlP9u!hNMgZ* zg35GnTT0*zoXG5zXp`PTz2cT$QL-Ml=AK1=xGO!XvHq<;Hc};Fm~_n}(oh>+8zcmp z$FyLmzd~JQY-G^o1fM@0BVsi;1Q zy{-PAX27oc4^78`mXB@muk$8R%aPRhlX`#E1WKbrzzfgOQ&hz>o6R@#lE5NDr9Yw{ zTcjU9%>@IcN4#I{*xUnIi^?mwn#>+nEmq-sSdz-h5F-MWrk#TN$BvX|HXpg0ate@w zmFg+d-K=D-wNgo~BYT`o$DSjl4K}UGD@)yfPvY%#dW`z=rbm7#dX2|uXgw?|cHwrQ zCI{!N*h@MjEZYp5V1~`;lrWH#bdaZ{8?VA9n_|m9(Q|)-TNvk*-)mFkcc56%Z7Mpd(2Okw&5H%iL!dTk3(;awy99)vbU?!^2v0P}84Sr`3-%EV3m#V0=Sd zdyJ%%zhD7Feu$K^dORqc-YmKNS@rs$_0gEaj?1#U<8p$hGCv5~5F1;$3z*}JGafDg zRNO@2HoCdL$`BBv0fAI_8(n_4Lz~DrSU>P6F11K)IE2giBknqMAb58cTiLS$=h;dGp*FV~e# zmNF*DVz%iEXR{dPLXhT8X9leyt>TD1X%qn%*OH8rM~QcOxQ!emY=R(tcx1>k!P;A2%2^8??2QiG8qYxT0(_mgoM7hiJ>@Jp__dq`}y^CyN;CC zUv}i~`UDxC-a{7et|)wuh_Bu+zmnpUyK9=)4r>sSHhzQPL~pHM9}4XY$-4+*B*Yna zjf3JpsjpJ`cGN$pzAg1N^3_|tA3K`4Ht|yPvSz#Gz_R8n{dEZn5VU*QZoB1uOUts| zS^8eayeZdNw$EmjOg6ZSdKsKl~?RzdeyzLUQ0Er+oo0476WWq z5|N#aJnu%p1u%V@IsqJMYFkLM^hwiZAT`J{L`D@^h#KDXf89ZMnL+3+ehYJuX`?OX zBrZ$f1!~sxLU+PkGvS3z4c$SRDhN9jlJb@A;ETeg?C1`P`+-tyf$5TWPj|u(Gea1@ z-yQV285F{hZU(~+!8LFpc}smc&eCzQoSz1XF>67v)^r^W))1Rar(HHn8pJ&pi(O5d zi84~a25J>jV^i*Usp?D4vDKl+mQDaSMUksvu#=R*nJR04$tsIG<9(136};xy;9N1j zoZl3W=)x>#JBgLFenNLi&yf5-l*Hz|Nmhu)gJH1ITfPK?U^avC5G`O7-zb$5tYS#l z9wV`kEr;Qy;~uK=q@Lexw9OYJ5v_1(1<2vypUH(2xAAj+WZ@v@Gbm@>BFedW63gXlp9C9aD0K-8RzyXPnm2(}bt8h! z?Kn_*v3NT#bUgYz9`;LawQER%=e@xR65sI|vrU#J z&ULsmbA0m>m08Ge_r5(9NU|a^g@cDAa|xM!Oi;(2!9AJHvoNeXdFVeNX5&W;P?Sy9 zSAU}pvEMwf3-mPMYSEN{L0k8A z)57=(b_vtC$6=P+!K;#tgmfjvCJb;cfvi!`gI=6;i_pSu>5I)vLyd-{QGQov(NgZD;Xd9(}aMJVv9$ z1(R1fLaU$gX3%PALMSJYEf8;Kri}5Bl5UufR+~5*mJ9g5)4o+Vrh8nzX(@HPnz``R zJQjQ0GW{{%dOwP`?B3t$Jro`Isi3`;(=T7;CBAj(oRI-*A#9dUQ7M-aE5zK-U8Pv0 zC^JvubBVzc*4z5tGsP@yLW>*6)^=onlO4~AweEb0iRO!ifuhwJ6|u+w7OoyvT76El zu1+fTe$C}{By8TUn^*Psaq-0Q+!sVKA31*8oXrg$UMCvhTgQpqy;9ONK}_8FzIAd& zyO3vVwcSs(7gC?l%(yZU$ZpOVGQ6I}HmOZD@S2=3m&T4^! zl(SXZ>dUrQiQ9WNd-cWJvrT9EYUg&Q0tt1lirJoy)3Nm&xzAwcCT!xpl~8G3Gq0mNZ_KMQE0A;{nYd0xP8{iut?%;Tsk!&~$mKt- z5SFOJY>I1)uB5*n|c%NRJxe8!;<>Y3_7b1sLV@(}lYi{r6Zq#1k#C=SvQWcMwg z6BfGi9b47*kt-1M{nMkP*|7O<6DtcW#8jKai^;f7uQ8@B$5yHraK5^>k66@+LQOQc zE+?sU?0cM4VoZ0sN1k@iFGT{C>mEwdcv4KS%SqsquPlc}Z&Di*8M-6Hpq4{W(@HnX z_SM5x{}>Sxk7G*{%QuKYf|yhsGYGhdFGEFEIKfmIdCjnZhCj*BXkn}8ylzL z%yR}((5(v%ETf9BP)@^*yK0QRf?}P2Y-Q+&T$NA_*+j z24@To+v1|QMoG+Gx!-UR&}Y+5XrA|0-$uqFTQUCHV`Oh8f5s=I*IPHsjIF;vyafnv z52HWYqvt-;1i@*;54IeQuRbf(e1A-ne6TH#)k4|OV;?}@^~><)ovGBW4Sy4HXL$c^ z#1>NTYenpxDenQr>Suh{1yB1XCHiJLRaqsJ<(nitz)7egoP{o%iH*5=7*?{FS0yx7> zyKZ*T43sJ}+6sx8M$C4lgw=K9IEi%le-1EH8rh=nkDh7kcZU$S$fPIx?r`$lp?lQo zl*UvBjm#FK8q<_33TeSNG44T)SKzG}*m%7P<+^WU7Or4o<52m;G+xaIaPsJKDmt&Z zQ2S*3@}P~ZC2Wi^VMT)ALxP|z{U(W6k*R~-z6i#I_SO#+tuQ(a!<^Dc1$Lt= zS=4K+%zeH*o446&6tch~4vvvd>@Ccxj=D2(kj%t1nsC0YYF(fE9S=VV!sca^3evOS zx=x+lvfz5g@e(PmwPl=R3op2Vwbyls^ha`LqORS$m!Z8eS(G`Z@R)BwAN6YYRN<9~ z*5rd|O}(!@*|_Hc8AWb8Rtb&MIgFDGHA;@JzwK%0O%V+}JhGv&rZwGl zwQ6V`=mL2PkVD)Mk<4Vn0%v6OPZwlmu;+^^@F+_&&iUfZz)?(tP3}lnnyHhGr9#FW zlMo>T?|)_BWnK+sH8U@iY09i-;7tf2%jT%{ut4I3k*ZWZ;LLZ_{+^bmm@fV@~=hF~&Xl46;SxgJR!c4c!r|+^_dGm)Aw> z>*R>o$&ouBo{k&=1L-jSwE;jaP0>r$y7{yBq;$6|loJRsUSTq3P97|ySB{I-byLn& zERud9DoFNhGT(rW;^fBQVwqj85arn^l)OjUW!T*rEPf?5K^E z1@0ZP>59#Y^;}W4E^e_$rVdqI;82V}l;T5QRYGtI{70@TigJoj$s8#yfzkrI=sU+t z(U#WrIhHJ!=d$%VQ4qnr)z`}cauA&df0PGZ7II2L<}~(JdxN)TWw`BGF`ij)erNC) z03QZmK*SHMJ+H{JI%+?`9m;yCnKdQY8VYcl0ja?kLIGWzg6i$TEvjkEH7rhfC+RnU z5z>&YEI~ZGP_rJV`6kD`ivA#h1Y(fMPygmFT$MfkCJzG&H_If$_m)=dK zcTLp_Iyghw`KK%PQPne#s($_pRiZxa;oxm3ms=8FDp%uui0itF@StLjp_A7GK0>}Dp6RDI9f z^dWa*g;fcMQzQ8nwuoB<6B)a8go5{8@D3JdMS0eF$E668o(jZLR!)TF0^aJ9$kP5J zish;_&uCTBXDcX4z%kGUQ_4|kojEK5We4mLvmJ@X^Nf*gG=dg1{hRS~P$18fQ>gKD z7TAB_NsOEyEw`t4%}Ax`Ju<#tTdvj^J@aMoaBJy?ij{YjE?r(yxP0ZJ;*yHOMa9L1 zOUg=?EUWa~rF~Ca`O2j$+$9y-zvWxLeC3iw?vnHKl&mRP;vslLEMKy;tXvDFuat1pU8>S7T2j6= zRLBNW7FLwpxpd`KaZN&c0#E%5ti%8ckDfg;+&pak*y3g&IWQs`&Dy72@_(E-ozd zECwS$5wLoZptw|=q+3zC^iEGjN#UBZB}=sp@>@utyJF??<#c|y@W^nQAt;bIf2>4!UOpGJbNUfFsd+N1#rcEnQl1m$r08WeF8388b3NTeY+T z_=UY1LX{heSiF3hwyM0abm@xX!c})`CQggoi;63jt`flID_56Pc*+YGsg7L%X)dl@ z8^*n-&Kg;|X+Xg*UB0rsd@a`UD+_7-?!Fd!xvO$XudtE`x{!J)f4Fbm72Pxt5w7~z zBnP1{iP6k_JvjB0c^-U^_`e5!MEH5|B}Utz;=d0*bt+lmxvKCOo;3pHDQMnPfXnt7x9;>ruVGUpZA3CJucOir+~Z#4f1$U8q^danTIa3B^Ij4JFK zYqd}o?$L#PZB~1foy8WuYb8dYIkOWNUK3qdFrknK05UM-U%24G8TS0Vd2?)qlc(hN zxg~GL+>DHjOc2Z~n3K@ewV*0LZ`N#!_$&*m6GEQ+IkuG4!h$*DwQ`9m+7$bEk@lpv z+4`j2k&-k!H-C;q%FHPybcs^MNJQzs^-s~HB<=kE*-qH^{mFAe@~)8OzHt9Yh{y#Z`e%xD zp|+qZcfzDXOG1=YYOUP-Ot7Vl$el2ElI0g=ML#Plaz9*TS;PePd*>627nOVKiWX~< z$g{ZIZWo7hur&072QQYkR_&WOey=^+RyaO)HoY=;O0LB@v;WoM-mvA&&MQcs5NBUe z*GG#=RQM|jv`n&eCUz$BXkH)9k|>Kf?F`YKiQWD_id0WMd?Ck3Dqe(5U0obKtG_5s z#i%wX;E=pcX~r~PvR0$q>qaM!vS+NnvM0M4UByRezIz~;!J34x)l$aWrSr7)g1CKQ ze!-}brn4wNFYGMKpFV12xlp@Aq&iko*vza|XmOU65y!$MC{^V4)9aeR_Fv z{+t<{aPV?of@WP%?G%5%d3iH))AMKN7N)0MXA-%D6qQTRqI-($&Z13;KY`#MFJgc^ zsclO7$>WQ(jf)bskG_g|Qez01WS(qKdMI8RY%lV5X)kAXYj;19^3 zpE=3|A59wrK68|S?{ZFziAXlZDqJ9phDtX&BPYsUBzRnQ$JGKwa$-308ZB;me%?%r zHb#ri8843LoC$nv6La}>PQUnk&T`f4IXQrau|W6?_kamSu zp+&{6)fPN>{j>?W-N~b)Q{q+Qcekg?SfmxfHYQn$wPL=5qiEIz4_-cF*4*xlj(+E7 zwAs-oa7x0d)`__}-9s@>3o|jPKrbd{qI$7Cb&};|^vP(=I>~Y-`V8$jI9t2IstUbn zdj6d5Lap7Pq=mi*l+)g4l4VWwnrNGCaFxoRXU&;4BQxAOF&2{{gfWu#{UI=&(Omkm z4R$Ip69vr3^T61ny5Z14KL{tPGYU91;5et)dT0Vdgxe=*&)RJa3Gw7Wk8{)c$xUBS zRggCo&S-m95vq7{CS>GIO;2&;=j2Vbl&`gvX%difU4G8YiS%>P??*gQWFO=y+LXLb z;Hr34E24nbS-g@=4Bc zQihR~NK%y(ujB+9l@<9V58Lnqs?|R~m ztS4)mhxnnAo)`40=LNm$c|q@b;*G2)t3j|0_veMZ>Um-Bdg6_&Co^~4)l&x?E2ljV?!yW$BK_pT@2 z$a*5Pj;Lo^uX?8St|#8edJgPW&w;(_Ik0y<@kZA3l3w+^q*pyJ>0M8}k@XzZtDb{; z)pJnqdg3+fxuDv0O|;CUvdYV6WoOBseM^RopG^4~DL!#e2GdrFHvon&D>?Yqj+fW{=@_%BF-T%IsC_?r=XT!3!Ro9!Hyw z53fiPSq;ltTW0ct6xnZOz@L^PPp{Ul^#gB|AexxdXAGBLQ1Ua?34tvjRjSLq<5W@l4L2Ea&1ojjPVvW z*g5&LW|nD1EpD4xTFY zC^OS&^K-5F2|>Ev^o=n;W6jTa^E1KxOx^km=O^s_(jV5?y57(&4{SmBb2)gc+98(GvQqUJP8|oUYK~#|Fhc@ z5{__y_c{Lq{1-mT{z8LLL^ROdHj&|i^MCvI1u(zj|5^T@bc42u zg2I1ND1TMzS34x1dmc>EKCVvUA*Lj4CNy0BaFX`(JhRWrh`*EnrTj19f6rf{mW|?= zT-g>qG%?F0ie%sS_orD&+H(GH8=s`*@;xyaE_h@vEc#Q!^af-wu4r zkeFA%^|N=mL>#+1uFK_LK8sssN7IabMCm76j;4AKJ2;cFLzQ@tkd*974jyU zUhV~`Sexm^0-y3)O)n?WUEU)OF$cNejsS)!lyccTxq!4@bV)nav2%-Im1pTXhrh4? z&9QxlZgtguet#bycT78stI0DX$V>8KBw&FYGY76Cs33Fq`ZU`OX?7kc{!KHg$NpTc zD;PJv<^#`XnavAYQ8133QkP;2o^CDB_g8=XEgew(IzLssG7#UYZ13p@PQ37~zU#z- zR@&v=|B%XiB-;NoG0|7I>-d5@TJ^W9KT_~^hvBuD@OA<3b1CmXr0{+m?SEWg9b3?9 zD%#of6tR+@=3kS@J*DP!(Jy%gYj$W(p!9gvjc5Z_Bn;n0bDTMN>E7TaLs9X=Sm5v- z`rff8SMjv6K4^HGrPbSR4gPKTF7InLbr!!_OceOConFH^RNl*Ijh<|4IUMJ&VMmJQ zf_9!CEq~qF3Ss$vks|SRqVS4&G0!-?s)K5_SAEH^{Iyqgnhp%t)$VpY(OUg_6uT?^ z7t$mIY;56{m9Fyhpvs4sF0-^rItfmgn&`VhzsYxxRp()x**1NiO`n;VqpLE7jHN{s zbvU*fj(FpGdKzj_MB>l6u;q}$pK>Gjm#TO|EzwmuK)p9V*6OOb6czHuOb{?K&!M~0 z*R=P``#tz_yx+umS|kB&s_AD9hYXx?6HLId| z*EAh~Vsz-K#_wQF)q%bIZkHdP?S7J0sJ9&X3)lQ!_~b9VCVW=qjh4LjUU|DzUV*S( zek89Wp4^UItp%AMWbPjOwmUW|%{D%Gy6%8UYx;ZsA6fiAj+56m4l=f83$omwFm+PS zpsdWx^`1|ZIgaayt7|n)ev5gI_ld3g*y-utAa?c|ndG$LE!$rleh#gpQ%@?AlTk#2 z(h6UbSU>qR*Cjmm#&MU?i*GY-Xbbc@yXupVq#xPD6~;^J%a3fXxAKkRYdLZ$zu(~N zI1UOV%*kR8xvgowwA%sW1PZfy`~Ts=TA*L${i<;)-=+#lzrmByxEZ-EbSw0fKi6j27P=jIO5eKxON;&GUTY~PkWw9) zj+gq#g;U3$_wGM>x+R_GPWEQ*Yn8hazCKTbfcxUlhe9KozNh*y*mcG4<>81cWOHo^ z4yoUFByCnz>IU67wk*ZHoYb1-HsmP+h|hpkMVnnI0CXFm&WF zBSsT`fP=bPPi+W(v7puQoVs!w^BHTg?#rx!*GaQfMQotSVs7Ti!NzQUcOY(^6MKRzuEKs);itkea%VtF*k`3^tQHKSAxb>W4r2SX|*$7cz0yf^%J{}?&xX3 zV{&C{TOCunV|zcYl-r@bFV2W{h!bA1gdUo0M4#KLzoWnD*gjXQ;U%-(6j^n4sH67( zaQJVxNI~hDyB*u3{rP*VSU_BymEnItZFt5#e@2p)tCmBfg2=A zrK2W>FPX|6wK5O+nI^7o%8-=k^HZZiq-|P*A9p|8!F5?4cV^Za_q4z#k_ts;cxH^Z z&5HV3o2~Zqwaz9KZ_R=ZpYG~9^H2RKYHkne8u#* zwIPjRZbT7t_RHXR1qJ%Yyo?CzUL|%~AA?rZ+Rrp%v|vGC*dK)V^*_cKTDGUdva7M> zeztczp>h4tI5Xc+xp*;7Y#Dp{HU9Vk84g@b!GcYfY2bJsmYc$N6Ju0Xlk3o|VP4Z^ z@|ww>L*dKduO7KOxL=0TTktG3KyQH6GeF}EFOY-B8KV(s=^s^pt+45nPc{B5)!@ji z3v5yPod1-jF=U46t>GJ|xvnVV7-)%V=4F~ZvN$NIZlUWE9DU;?(A9m2~Z>U4)Z>%MQT-Ri78r$iS^|FN!7((Bse+Ue@JOmR_^R6)lG6?QBd5YfFP%QAr z2!K}K1z65ws)_YQJ)P~o1lH69YXVGSQ-gr{Gf9J28fTbhg8RL@vh^sgcjQ~E4ySvD zg!mYVlg-53N}26c~$-&h9h_I}ji4dlnSV8{PhT`TMR%-3a=GkX23SY8ms=jnY$BJ6tojMYzOD4sUC|?G0F0K4ak@m~9oi1OVoQftI)j6U z>Qru~8`DfS_Z|sqptZ3S&)wMp&1bNU@U=Ms-L7WNQ*0ry;%WRu!B}&_(-u#k@Ed#H zL*E2r8X)$r?kx>Zzxmc=_{v8x=UIJa!+hnV+u|;7n`Eg1lQjL|D#~tuxQ1W(BP@Ng z{_rC>y=N)id#E`ko5|e!wPnD*GyA-U)4jW5;`i!#n6+c>g!$iRYtLit$8@dM^zzz3 z+9^e`$vSosy8|yIkYUG6qABBm>Rp1Uh`=!dO|pM}5)P(pbPlDe`pzC0t;Fc<(D%q* zpkF5VOuLAOxN}5L@Or}F;I-b*Fh&#dPJoCFqnwF?%qdN7A>v<=-Y^(+0Xs+;PtoSV zjZas3HVpkpFu_PQOCj@pQ}qIf!fiZ7c@LeF;#0%;jw7tcHwfS9*Q(rcMu9*)Vy@ez zUNOW-#*A=At7PnMpd(+H(cJ-`6400)PTY=9dup8}F_(GYx!zxr5{MOvLhDX6pxolxxKuZ*2x?S^mtc}?e$rXc6 z<09rE-wZKnkA)IUD{z(3av=Gnmc_UZPX^BUK+O^UYEO^V_|XWgX4xfSmg~IbqkG&&SpHO#QQ_C(5dtJ2W!8u9Vqz4O!cH z_MPeidpACrFXD|GWVQH^AeAappxMYSwN&3_WC~h4eXDI}+N7NvH4jO4!}yEIRPHvf zuk#vLs&AUue@kzAT5ye}&5VnLUxeQBfcvJa>zvDbY&(aL`;8#?0Z6pxI0d=(99iIM z)k|a?RQYo9z0E1ck`TH#89v5QU>S6r*?gugnEC!~stm6`yI!b<{lpya$IT%_UT}+@n4HlIn=_joTW860eNNupsd?d&_6BmVY(M`a``;Z#C)_dAMyfbl@i>)_GVo0D(K{fYi^iX5ZmX5_-o- zeaqok%fVobB0&AZ_DN~VQbGx)B&DkW{uLyM#7_ILHST7p*L zF+J9)^KPMOuczgEmX1lr^FedzIFjp@T+O{ghS?=%&|vf96vI9YM45^EmeNgE%Z2s~ z!wZXIlqDHYLte%ae!Q=Z7UDB^iEWOT=0|1j<8j~{T0V~F<>tKOA^RN|?7EyqkRosH zM~6DTRIvLc3t3F2j}y~B+)P9WsMv-Asj6iT5u1oZVfdI(W3ZS|EEh zY>~yU)a{D7&nTqVhw*Lo^+}|(+TCj%vw?PD0nqvaZ9a?g-TJPuw53N*(sUa{P&$qm zM`BF5*sj132+JID%7B1xezDIh^bdwk-ycQTsJDrz@I&9kM7_oPkp+9JpF5t|G4^do z?M9%r72YK>Q{={G-7Dy1@)ZPOnJKT!bjELMW=TeC<8hR6nMu!s>ZQCFmgF*u5q z5g&G65LT>_DT@{8%;Jux^k3czG8Z7}9#C36?%aJmkMoQ>iSV6-8!KqUAZFJ0H)!|L zL>IE=_r5j)G}+;0Y!=&k-p($MBsV1a&5}G-iEu*eV`9FO7@6o*dSf^Yi7m%C$=u~0 z7-1#mz2h*U7M!|E#ROW;6%e8y^Ypd7l;kRtmUsJ_Wo6V+vNo-sn}p!#;>SLE})mZ2n4zR8Kcd=@#@u6`lm5n~vTQAL1!mUU6}H|HQXNA2JF z-K-ubZ+6eDUSrLlGdtarS3PESL2kNd9CCh$={n_|5*=lL=HoL~QtQzcdvJkLU z-!PHmI(H10_JaZ61Q)4o)nf=NP;K2$io2QOf-8OVc>vQLH0Hq`jKlnFw$V@!9&EDN z*h8;-$BBV4a1sV>9AYioQ|~0hdxYjSr{gOGYJl2`)oO>d!_{zH#TpfZ`6}#-7mJT;LAp(rH7)fm*?Y)xLPg*6I{$82%HW7## zKPQd3xxN6}uRnLB*!0=(P4gUT`kMKLouBvPuj>wAlJ2-n2xf{S@O=r3m8t8v8McqG zHz@vRQvAY4$7|xN4)df;=DyIh?0wA^SPOe+zL&{k%Oa{e z1b7W}H_z6{3d$CeO78Lh;t)0QWw7o^W%=+O^rB7{0@R+3q^SkaGC>0T{Qmr;#N@pBIywo5l`F?A^?<5nX zwk=lP!hdHzx6-S2+)b?vp+T6^ua*Iuvum1Gu3z9xd(A0a=H*GPh7^_`;BEk&Pf zH=3Lyu%gIY#E0w)4})kLfdsgh4qzvWG`Q#QeO<>GL{NLlCE00Cei@Oe`|o0pLj*A+ zc_q5uyWB3^zbrUdu)6O@TjqA|dTU_c=j33xQHN}3+*N7hEvY@YI0d)YBUptSZT#nQ z%~r#(;EKeJp9*AMh~J~^5+gfkgTbxnPv~m9jPr3|u&?N(pbevz5}r=i8TZDg{f2GY z;y_;T8ALHrSFTKX{6dnNB}Z!b^0zxX;UTGphot@dO|Bnhya%)T$#l3pSKm>SMHYBg zDvoSqhmHXe)n*6vM?}3~iZpI)49WS+TVQKZ4k@H6$!B)+!nfI3g&(Ef1V36J4iQrG zd;5pw_wg?hTokRAGmZ;M5qXIB(846{48<*1n&+25GnnqROB-XCmQQJ3(uV&6)o6px zs7OOB7q?G!=c4VhV@BJh0aK&_2hM8vn7`BTT_&GrQxW{lZgWD{b#`Bqx+|$WdJm(> z@EWxa%gnqu_~#2_H}VnFJ+vmp^H>4B5lalpkoQz7$%9}QDRBb>}_Y;R!rMuldL;W3(ly(A?xOU6O! zU>t@6gTFzq(D|;H#kUGrp;P1=61Trvr zlY;r)@Xzd`E{Sf(=hH9*pb6rZ<8c`Sr*R``Tn3vctf};GM;y|2&7U*c&xhI*>LZ~jRC+{jhEAYM0mnog39 z?Tn_2NffzMBJZgmp5NeUY$YPU*3*rdqTmG9=QPVu@873&CE3K zi;b6iN=gZy%GMvRgD7MiBf-ze0M8$bYvuE{tZ*HZ+1(i(DX>dZ{vkU+@Xm*m{P_QZ zxB$uYZ~=IRw^rG8$T*H?q{tDv6AI+%(4AvL*XJDSj0??{v!TSx-!zlF&=ovM z>u1>gK)=jOk?Gn@Fs{_hca#RS^5cJ($~=$Fl}f?W{aPq6qn^@mY9uN|9Fip9XQs-V1FDXZ{ccd&AH3sf-k%;*#XGxOgSq-`$fu2a-4vD{x;rU& z$0yw9^~o3jIV==P!cJZoQz(=|D6}J;Us(*&6t_kZBpYtB&nsTa-&}K;1(JYJjCK6fvKYR6>!#(40$oHLn{)4#gajX zYEtpSMxJ4TLz2u*?Y}mS*w=J(28|ICTgYOvxfB!|(lITe`9q0&Q%p=5oYEf}YX86FKTVm`ls7QQ*skEwgfXTm+&Cp5ggtFVA72xgt<_ zLn?Gv8b14jyGNaR={*F?Oa?FJ$>m|0_J#D+rqSP}Oh-!Ea!u#RJ-goNLpw4ORwnK( znql8bTvW8BXsX%$gKT}{bsS95faW4@7Pn+5_7#avhlg1!?k$>eDm(RH={rzh`Kk0VjoWUdtpceI^xiRaUygLMzgYn1|yk?@R4-M>4Fv za8Z_#fXls5LHdl~3a&AXZ4jhHt3%i4k&P~N#Kfy3;f=2`sf*nA?=4D@d5wH_(vYX3 z-nQGMmh?W&r3nSBxl;lk$ZW$C6djY{N(`Z&MXxL(gCP(P5Hr8uikhCk2>$(%dz5hfGbhdcdytiFQZ69=&5Xzy((qI~`Ys8*FbQK$q zS@apFQ-`Mx`;K@n^vi{fX@L(LUl5y^SG%ueObP$?2&FRq;)ZHCQ?L;!qbZ#LU`Ywr z!xaE?OwDAj75ogj4Kkb3576*5!nG`4@a04vi-x6}yyNNC4naE>Pn+aW`U&x%xsM`JzFcxj_|K*_o=uIUlcE6f-F9#!rQU7_ui&!r zdOLU}OEtNTi?jvJ+~`EGrPN#4Jn$*jm{gSU&^7{|$Nb(IOwB;ACwKM%Y{+>!c&-r4%0CnOsl*n;Q(hLCWJSS#T_yH1*Yx?$+J(B|177;72~ox=x_EOnX= z2U54JXm1|4ll;aLRO57U^@uw9k9=-8l~BK6Z!h_X5Mx~27dFVnqI~cVqBVQ@0qw+$uW9F00{;@$}kq@6!Ol^JuGVICviY?j9b&y^Tk&q_5BH+Au?X@$i}AyFTr!8+zIZvyjMPJ>pOad(^yq)Nq?h&w@{*a z;2qb$`tEF5VHS$>+)YnV0<&lZSQDPcGQ-gCwgxGF(sX%vnl|z~{e%QJwelO@E($~_G*GUQ5Ko)DL@Ptr$hxgozP>9W(~67KynuTTkW;=OH%4>5Dwb)ri7~rKOpy66+9%rjjZb*1m&Du zO>wzq#^stK;a-wK{>*AWax>X%+S4+(zahnWay1%qwc^#UB3B`!dWKxJ6!#bGPHs5W%ik+L?(X zgVmVnq&MD`p#uGb5h}k0HneYc252lA*K}|APS)$8*`G|EeIhU@gl+LF!N|uyF-d2W zl>2QHpwrhFI;*!ncA-Z-%)fu(Ukm?k=U)~7uIFFQqGbyfj8dy{D>HubO_e^YzS6(O zs;pjLR#jPU)%nX--<<4xJ?E#wsw&IBM%=;FS*zErt*NT;SBy8^1zkJqQ(2V& z`c|uKwI44>$!ck!x*C5_mhFql!mEyfS>B`#)3W$Uc0d&O*^KT@W#!gt$9dT_3tv&v z&8mv(>C}opGt-rlin7|(You`T(X&oGKUuirn#O=7D{%%TpS08{H96I-oXbdv7bOcg zGa?51e4DUgY}STpjJvPSDgf+bWYolYRh3i;Qq zURPyht+xNOvM7;ay9=^%)@hAXD@q00%=F1*!(%;fHx zEey-eR&Ci@FzBY*%5oYcEp(EB@iG#YAo+CDtz>*QIC15=XB^Ix)|S=Y8kgA0y&^u- zmlHUp)m1PSQ-Sx?8$;3;o1;s@MiKkf=RjXz0PuO4(nbD~etgl(?hd|Yiu`1UYY!R%Y3G?Qy zoH$N?C;gq=a>mFKk47L$vV!ngv3^vn$KBc(%YUm7B^tSUwZS<_!T{L5=q$X)O|x_v zKGe#s9Fqbxk|Y&2&Iq((3G5Hj*NVD22Pm;`Ju`QgUr}9d{0*Kv9e%!OiM85aMSXTc ztLA2=3{(tMESF)Gc_IxuN7{22N|EAI&)T4cx}4Ru*}UT;O-Kn{H{?REZzI-%xzq*S=D7XTRB}EgAX(5 zE-u&%-tisZf@KC7yHkOlq;s&Ke2k*uxW20(Bs7Kru|aoHR{1oU^l-8S`(~3>&p)fY5elECl-kRpo~82;+g#Gn3^zgK%@Q%?G;D3VA9spAExzk}O&m7iGM{ zAsw6}(z2FT0CnkSWwn6DCMZCN>1FCU#@JToa@8d=nY5M+|iO~w3CW+qgLRp|3(5F4m1x;|%ALiUiD3wo_vkpuwl4k&J9l ziMe=6v~h2mkSUpEg3RJL(OQ3tsUt2SY+6#C9b?^Oklm)2Ta#`SFFvI z`G7M)iK$s%Q&wHMI#&pm>Aq5mgQE%{q1_q>*|_7E=)#=i_vjiM8lAEwyulMrWMntPw$dM zvtvx$NJo5OW*a(0t8h-4E7)rHHd)2;IlN3fD$2AlnPT6nE9ztNG+sCnSRnHkjknVn zLBPm&G3g@4kbAImnPVb?I{eROJ|LONK5sEZeG*I(Xqu-JKXC%_dE+NLU+j?cO+@x} z+L|~4H>!ru3h${CN1sT>jGd6>+VvIXxoa!duB*K@7d~QFHhI$DFVw*6OYFQdZcaP3 z+q}64)0g=ZlWp+k<|Ksp@Dc+}4~c4)a8iNwKT%9ch2O})QkKJk83;#Ii_dS!U0F@# zYCyTJy6RR#Mc0-=<-jMIN;tx-gXKWo1WK%5a`_Oqyx}dUZj>bpo31%06w;1Q?n1=k zc}vem!Mw5K5ufe9u5=5FOABW#m=#Ma{K(;MX3iO3y5nr}m|Ir8dd<38(=dl%Iv)&` ztWzu#gk`F{N#pXykDHJ;ev;y82gjRiCSk7aHn|J6&xyVh;?UQ@rFr8PpN&a{Ftu^Q z%be*UY{y;|<@mLcY9aDniQsc^VyL?{7cQC$H-*1u1)w~YGgxcXjp|McXRWD>m0DR> zeX+1Jfo!2V@vq0Z`tCOD_d1cFLGr*RM#Omq%(t zZ|f%H#?t53)l^pFi8}WFkE$#yqmbf~307AInaq_i=-Y&8%&T@t1?Z0tS~E@TptT+W zjk(Km4$Z(-fwe~b>iI3lh)vz%*cut$S|ceiQ)J~@!F((8!#{9T%#^NM6Y!U_XkeNZ zcE^@kk`V+F5ksa@x4a`U-7D;BOPsGFxJ{arr$ylET6@R7;9mP&(J>jn8tFY=4w=7v zq5Xe+NyJcc+1e5#Rol{tt;L;WE_J@N7dDYb#*OW#Wg~h)MQ~k)WW!_Tt=; zToD%ytuLpE&YVRus;I3K?vYhTY|YxWW{qW))%wO86@Van_Zme64dlVKYs-w%#g_DM z3LspZQ+hW(haqd_`0yo-E!-!ITV;_d?Na2k`C>=gVy~`bIrRdCXL2haR^&R2{UABc6Yi&h&Wnk^tv12Wf=vgn8udAJY zaaP^Mq8up?toGY4wH52_fUt9EUM;+Ky$IyI#K@4Wb*-7=C|l@``Tu%lJZ)Esi+0g4 z)#7u$R>bJonl4V>>nRKhA`o-4;FnP#nYoKHgz99<$mgDQbt~?wYFPD%8YrfzqQS@r zkce2c;9&eZN+dXYNiWOqo5~nVL|)5YP9fdK3%=5$e@^l>DSL{(66F+Uqkt)is$(hz zsoyBGm^#KkdrzSO4h8Nd7elq`EIi(tNo&?lYjL?fmc>(TZpG>~b*hT_R-upqD^%4@ zWol{RLL~^Xbos2AN<>SwXnBcRwrE+2@N6}AF+a-|&0n;5#UclehA!#)Rk--KX?ES3 zb@jPY6@pfEz?N2>Ma|i39GWOp-gsPx?931;f10f$5#nRZd1waB!qI-aRuV&v94fUK zA~I=?y|Q!?IOJ;Ky7hw1HEUOyVFHzHMTu1CXpBwerlm4Xaz%5h-c_*zdAj%8ltdO?7n>VH3h|a@YIHa)pfA(KsHj zs7Br?&n>UGDd1D{7cVMZx_FVAI%V>LqM5l1)tp(Sg+;1((q(yS>EfA%YU%tbQzp+^ zsa7D#&63L=5H;&6)WR8)^Cn%!WUdv}>@*{5+5)dFZVUOem)wYc!hA%<$XuZ{_S&wL zi6?-AFcSxp-r%>^iW(BNN8P$A80A8Tzb(Uao54Dn60v`||3n~`B=)o+)`c?QO%NEW688+m~%r_6w5p>ZjOO(iUvJ$z5 zNj109w}$S4vxo&X09=$F7Mx>k9av@YB5e7r1r7RB5(&D^>y}t7;SqC}%|L#1l-E|E zu0j~$6{|B_jc63vCMelRM)EkF5+m#=`+VTPyrddr2g62r3P04eXVLb}c_w+MPMK zoF`pbyADv1Fi!kCXOE=O!k6fA(M%lOyJju0N*6DkSGw3LDV|j{Z}z;R!qR!n${A1z z!z-CHmaSBPH=eaKAtJveBL9~^*)n@qyd$4Xv*HCnQC~>$MKhN!UWnGzYz3gC02Do{ z=c_4*H5_V86rh4vvaN=|y-u;Z)69Q`G^%DJKd1%k>Xl%nGO#z!nY#Tb{j(wau8}VJ z%DJNi^y1b9ZjTXta-DtGhzXlbsn~rVM);!Mt!tn~Top5ZDlf6{6vFnM8KMc%_T3cD zmX_o(cUj20zjF1>M8rOsr)-%KXJo&)G-lah?~56sP0C^Sv&Wy>rnk!Wra#xChOsYM zS5YQc$K;M5d)e4abH|S#TTykH12UeS0`TqzdgN^y4tlSFa;)Oae< zKmYEOMr`nIxO?$cejO#;+n;&IC~kMf{}Lx~hlO{MRzevZfeZh}c}bU-|8!o` zONzW~ab7rX?FlzHFNyL}XI=M?|?bt+3KJ?@oeRx;M5Mp8iL)JV5Oeov@oIIP&=&4Qzo0Eo zQf(ns+Xe|W651}LpHsQ(aB6i4POYwtJViw4@}_5TX|+dOTJ1^N)Ol-4Tdw3-LXM6< z2Tw**LkaOI!ruc#k?%>)gkYk#3140dynXy5x7^Ngr9{9ywDG;9@XlC$Ar8-uLytil=2f~Wd(%j)W6j%{z$dNf(lz}$|*$>3=!#yu^I_ojg%Bij10)NbF zf6cqb>qPKG*5?!`2B!_4$L6Q)dMl~#ejD4noO~XmxX5}bAjQ-4eQ8KxezK=YOHt=x zC;X3#YAMR-D(!gW5-I9@Pg8>wkjj0mJR@@8!SmSd8N2?9@qAHw-+i9PZU*NunCvAz zV%QoFb}|?hAvJZcXUorN@a*6T<|n6c=LSCt7twn;2({sLPGy{R0{`>(@ded)%dE~# z@B2qW9zF{0j~=A5B-~eo(|T4Bov4HJ(;{D|O-@0eU~K+>{=T?W4EryZBEpBrDOKM3 zN~~RX4vBA5^o=cZFlqPyf@^3G?kyUAZ={e?{~^@fwrf>9SOtN*oOYI5PveKFByHE* zc>8mR(&z6>x>roPuN+W{VHje?e_&4RePz+4f8_HIqIZRlVJ*)HRD`xBtu>BR>hZml z*jnVy)}bq;^E$NI-CKRw*%+}*Y%o<%eW9*5oeoA9+v)Cd+t2lhdh`3Od-0S`| zv&iOotW$43()xz)c;tA7bo+@{C}xEL3(?d zRsq`jr7}Sd0Ezm6LI82zrkE&A;utzIiyt{VJDI2F>(2_f%a}Gzcv(}Pd%h|0$(~Ig@!VU~&$YKGjg}2**jtogvWmH~ z9HWRlCkZ{Crrq-70_$z^O!aJf++-Y1#$j%APL+O{7fLIpw1wo)NKla$(zSV{b-=-H zu9R#VNNWivp6HDFPJeRh^Jp2D_olf5*T^VyB*l%31F;IfK+g@##sK=R+cEp?L*QEk z!cQ=u(Q)B)ysI#%i45ww4wn}VZ;1AzIRYsT@aV?X-ZRl&4*d5N7B3XL)avq^MAeTy zY8{(jCNh9B2n}UdWSctCdPF~2$~@Mg%;Fl&f%*)e4yE#Mb|OE^lRSC4ac_#AAALs~ zb863ndRH_)Y5x4AJ&|M*Bq?ecuKY7(jiR;+x7I5 z9gNQRc4|%v={=e=Y)N{aPkbJK% z{jWUlTBvhB;VDOz>Ssr<)YBt~eEv~)C+q2*6y{Hl=IQC-G(s2Y=^yh9SkWO=@H44E zMN6v6n-3id6X!C0mr*P+NdZT? zR|gO3@Nw8P#~x{dL>%$=(w(nFN9o{)`Y8eV=9hHvXzQO_U)7=P6CLDTt~+03RIY7( zy_HX&=xbtwjrcGG|w|v1ergQ(3N57MgsbL+YXunsV3Yt*`n*`ef^$ zsm;`6Y7dgAyF#ai;2tnjhqLXXIl96LIBlFa3KR_nMQ(u>9udq9zgogT#?VTjvAuwy zZQY$68k8!Jmeg$X$h=rJy?*PJt>F7X-FUQ5wy$}1j-IU>-|0i#)Hm;#Tef*&=UY7eCQbYs3( z;c8oV{85kmFq)vpKPxj?2jA1MP^f?}STani=;MR9Jry0J&9OaZVrWo_lsW^VE%fy9 zPr(kH@;~1HN6e9RpPT8pRPQig*^_<$V6`(WrT6i1_B5e&57_uUxYxnv=XB%SeWo1p zj}p@6P0(%cLuGXMerW>71o0Aef@~*!$#%8}$z_9A;I|YAntX2ECd5yNWw9sdnB;?h z)1o0h#&rSZBEU+p6gO{Xbkj^RrVr_{KJ>fO?n9>Z;lEDPzd_zw4YrMgFt<}Y%thu? z>eC%O9@s6vp+S2)C_IgCJ9Xdvl0=3U($<^^Y2*2QA#psn8WLzH-4jbHbUQW!8js=o zW$(K+J{DiiyL98T4bA(H*1UU*Z*#fV<=b54O`r$3lIW}3oYsWF@du7|$VtCmn-B5w z(6J894F^JQ{;GGqlc-&Pf?p=;?L!+8_MczW`O5a}Mmm?d7|LMC+~^%)=QmR^!u zYAE&g^|eZstx{!6qE{Lr7}NMP_+a>!V75(icQ{RXy>$N z&Nhs(DMQX)Lq9m&NqsU)N$^Cbobx7^jE^v$4()nFKFs_>qREz?N#g&WA!ox$^L{Ls z9M-0+JG{MR3b!VDAqw`*jC}MJQ{-~-u6MH&24z4j$(lY3N)$q2FAc0S6!qGNrK=J`-;^oQ0^ z%tVSISHr>kOvXR4tadWSBORijVZ5|6e3G>s%@YA)pWgLB8t`7z>1!!UN8vMfY)k5~ z+OhfpArgCGNoHCi_uc3FL0VD+aF!3;NV(fxC_(IrmlQ*g$fz@2(|;#*wG4W)gP|NQ)$Z)@O(;swZ)kW? z`5JC#(EBue=3ejqm75;mw8Y1)T9{^qoXr2$3dAh4DLg>B>Y9n)p_v4612594R%Ig%gR^%9aoc0+0V1s$P z!ppf1FP3TmEL^oAf7SXvw05{lR^2CbxRxcJ!4(`BYtJuVH25=@&>;tzfMW(MJ6$p* z7*KsR^2Z^*Oz*}G=?UwT?U`U?SZ5B(B$$!TbWH>m1HF8WSIJaya=5=T2iM-kXX(kS zM7Gx91{PbwtH98r;fW&4xS|*MI2Z3`1kxmsK%k!)gzEL=5XQGhgzW9yORSFDq2exmD*emL8d=SZ74G| z7ewHQgs|jStTQyOML$45dSB0#TOtO^EfIDp`*mUTX<29>M+NuC5S13$9D<3{B?dsl zAn1)pS&z2v(ND7ECgOylZFshXGs7GpX5WW#@Vw%Oe~;w39Fm9FCPG4t?8#LOaJ$B5 zLA_W*Y#hz8N!p_Y>3aJkcniq?^ZL8G;OA>;IQA(m+5RikX?Vpi*XEcp?1JgeaOkkO z_Z2!aVyU30$S{L^n{oZ1+k7v{EXJ3Cy-0{{%HTdYcz%w4gl3Am<`$5~6KlBzfhk2Q4gWqHSWVAr>A_l1v`t(rNZZcW;Y;xD z7;UEtL8IqLYf6)cjYrH?QOeWg1>R(BPU)NWe5@OH=lPoZQH(!P&x^iyw!HiS!<-^5 z>zb!agr&$LxTTLMrCxT4PTt7ZktbYKQ16nu5-iFmO>aRucQX>imNihlaDLzV(G8#F zvChOv%K(jP9%98s4AA;5rQAKy*JRF<#?6jCrGtNiZZv#W6&S2%Q(CG7Vdq-{Zr&EU zIg0*Sx&OMmt%lFg)&EU3e74%t^coK|^*JunsBKxtBRM2PN$+;u?QQrB9sT*z&f631 z?|H|!ZGa|;W*&Bt5NRZPz(20xvkf?TdPm~UV{Sn*(9Z+hJxQz_ZavS=n|oYVVyIsS zl5D_P$pC)%Zqd~LR0_GIX{YoQnchEIYDcU`4JvTAH0pXC?so$tZJGg?SQ(0s&>KxV z&HG2!BaIaEKHqLP*%OX4X`%~=t9Aj7*)FvASC|}pJnzdR89W~K#6BnJ@Eg>igQufT zU$Q9e44?7QbK#lzwIFf0u%Jj>BIxiZ@H=tU*o6-pkL@?0GqR8fR!B+*Nd4d5KiME{ z^0vnkFm$0Oyzkoazww3%XyYx4@unIai0SYEJTnLqjB*JpNfG=R4bKL8{CuQOG>zWkpL89u{@(I3ch$neMO)5Czk>GHl4XH@`^No@Iq8pu8hR;Bki+wVHT}VSy`IH`tLDYs@Ey8d38xGk66I-Y-v@ z3<&L8W~THZJky(FGRp-zvIgkK8%}7Ida^i=|K>D{!m7h$ z0>J$VtkHa(WVFTq5Y{&=1J(ykjsZ*@%KNS8*r?>Bao%H4!5gq<7;RUuVgP;{p zuMu2=uj=qGZD!%w)Fh&daJ-}CLSA=$fqvyL9zFhbJvDmgKpno<;VRerS`tSby-^oM zkLq1#z^S8lqL1&Kq<`mJY~l*!#+vo6tWg$9vmQ3h5{D-`oE~cyd3Q#W-@Oqf!3c_M z>jsZ4ZULl~hzqZ=OSDfLpHDjcl3Di9{MTf|i&>9IJze4;nn?QJH}%{u_1HSapPtd- z3!wnf=bh5yk(xaPsIwx??ZW zjS39YPK*8`W#bcS*BJ)Hz&biwhbzHdsqv4|Dn0e%J4+hgF7Pj>sQE6t*kcBu$WC@! zn|IUNR}90D+mm{POSH4H*p`+3 zU;%7O1bOlu-%b;2Xz0p zJ04E-7oJs9@MON3SlkD|3Tuq+d(v4&kVDoFXpn`N4v;DUlP5Y}hZouy?Eg)a(LEyD z4X8YZNH_m_BEY)jBWabR5Q@D1MJ#A$C1}DrzU+I7B0v$cx+@LeZ#}zuV zT*(rP2X)2to1WRvbcoC6pi`ggv<%htPQv;!>SKI($H|P8u@VZpf|w z9?eI%lmw|8OL-u&Okz&N%KLAD96sk$owv$nSEt(mPk3FInr^k!ie|+ikY1cxw1s#yk6q^Lfqt;EQ?qPoM$kXtWay#&IlG? z#La_AQBThZWcZn0WNnbt*L)pIzpg5hsKS)UA~#koO04(NB!`hiK*Ly5nnBKYDEa_$ z)^%R={-MQ24%lcTP-vSV4hUp)!^pz!ZD=}Q1C8DmObBlh+QR%1$pujCMFA!Nw`2N0 zj=w85Dp22q=b^_XdYec-$2C4Y;{+3Xy&+qcJ*5&6qfCn-Z!gfYm8NBlPRp95Wuj=M zbq|}(x!5>?83Ob04jk7xf+N5cc~T%?7DlP}lV}+lJSY}URe3R9;GiqNmQ5fAfMw#Q z&Bzp<$GCAxaPzjUDveD?+xqc36s}%3^Pc=y z*}F>{F2w_@NQEe~W*pPD8&)qy7M70rV3qB&7mR#t3lQfo64>F1)szPGPWOafOrI#w zbJRCtbc0R70$2T9u_$<4)q7;=_HAQLFxkc3d}2wE>+*bkw?fT_6#?>yZAZW>JM;2t zED3lOOM-71JA(IA{Y0@M_yik*Zx{=L57|}4fPkMgWOz&n_{r#$OiUAsfLZP{76iK- z`vI{YctSD_mrPg>JRJ8zOuu4&(iTc9upbB^?uhw-C?tuJcA9p{XA?H&13G-Ac)nca zGX?}JePSje_5)%*Fk)_Cj*+!$khNHBip;plh+WGe&e2O`L7uo4f&M(84n0+tQpPjA zG_fJtUs@v|!hAq>*f1Y3`Y%Vt6;ov)+}Tt^c$`d(zBqnl%-$`B%pdx6x68lk-5Z-< z+!=w`zJ*Ni8E$kpy>FPnk?7s|r~HBZGlAjYJBumP#2=U@{#qEr4zZw#USmEc3D>Zv zg-P~nlWemjW3Gq$;nZCiNhT8-)^Vo%u8Z{cHp5cd3`<#0N+?PAeWpgFjIvKjG+BGj zLD`hWshrFM`XdGUnoGSxp!wBpFC)+Eu&I^VFhlmPMDZM+Zu7A~o-7T`ADiW)U6wJ&5Ec<-j7;e!CUR;<7t?G!#vI?LgU{3O>%6kU znJdg}22g#@P)_L3g=WgT_8XP%)ZLy*2V*-KtJ`gamMvxIm0NTXgQin3C ze`vd~y>1378wK!BS%#+2Y*7Y~W9HyaiN?wVzwZ~wucs5Op@=3@f>{YXF2iR~^FyKT z_)~Sd5K{@qI`GOH|EL4I=KcTDfoEbJ$UD0O-K1%Xj6n}Yaep2D@#{FQePJ^s@zX?jlJj6?mgI%d1kk~&z)up~7fK+)flnql6U zaR<%ocLDSBu<=iKx%>mYcZ0FRJxxvS*4@qfk;=|Q0`B}Dd7A#B>aWkA>}hIK_1=6E zJgM?Wdzv0X)$Q3d38@g;ef|;P9R301H8RVcKg}P&Ir|hbP>T$3<4jr$tV<^0)gJ*ALEr)PF;Mo2TjLDj$!ruY*>ffydOOiDUsAk5{-l<^&~|K zx_jY{Oq6ULv1}cYizM3@5v*q$4_dUxiu9A154eWVhU$KIWCW%Vp61U~en|im6Qd`3 zJEh@NN`O%=U_K$Uv`y;I4)8;@0QCkGj`=IsLl>C&HXFLwKzj^qCGx7$H}4m5{u}M6 z`2-P?lKg!TzGn1}t~9TS_G@Bv9&2m2f3R*0&&f}z_mF0z{PE0C?* z-V)Li{+S4Hjqfxx!!7p@x9j+>i90YWnry${EAO61_h5~3=jSo@f{guC68#sU9vh$6 z{S!1OY_YE7~Vh#pqbKRTp&6jrSk$c44X`eg#Tz3QWSJw|FSCh)1NLX{S zY<(b&atxWD2 zw#emudV7;;ja;m#!w*u2setX@s!V1G3!C==(|#m}_wAb55p8_?gcMskfaZY<>0Lt% zuXH9B{_}O?ahYOVp<$+2qnTp4u?lPrI;C9al{N+wDCC)F5zOQW-JISjVq0&3z~uau z$@wvkkV(!Z2d%rhGMCz!u?wZaGcysBz{l`ksYH|=5p)uARi&4FO=b{H0b|%8yo&|x z{>^L~aOaJTZs1m1wxlJ4NmS~!bl>;r{#^L{TLZ;9T|S=h)o1iz-o zlx+-3&7I8GHhaDvF=Lt_W5%r(GB1I4f>7`UG6(Hf8DVMVcE7=z-eym~3WXB!eh~wM zqQsYB0_db9Jz>j)DH*^bHc~!NlY79-`0h93JAgur`1IyWowUl{2)%h{vJQ{D0@M`k z^i<3Tn8p!Hu!G(e&^y1>6T>lOCd#vN`J60azD-FE4YaqLV|oGGPFHxk*$-w{9;s$y z^z+X1vHWSdpy70azhA@YME{V6({8_65=Ty)GWE!ACYGR!q&ifrs{$Ahj5RiUmS`gp& zLm~^yYRL_XiE*cyRNM4PLXVtB)*$`v%))*PA{#H<0ISR-FbJPn@d9f(VaA`==SHU$)1{hp#@%b%E9Y^_! zN`;G7&p9eWxn%FM<;S8BY&c!(Us3OEIDMmkb;Icz|CEN)BR!jbBSH^Mpv&~``p9>q z4W}DC_xu16QFb;PPH*(w`z;>#c$zjVOai`?;cr6pdzSIoX#}xf2#)i7a;$WmJ(eP5V`5*>RMRFYql2V&q!($CL<^_^ZhQkOX#icKE)z>L%v+Lq6Tt>@W5Seg z-o{8-89oF>@9_0rStJXop3&ZLs?6v44kjo0uJwbY_hY#JuHn>;e&DVKxm6^aE^FXy z!zUkA`VN;PqHzRNZ~s#VJrpsq?cS%NeX2g&CD?-8szrzg1+O^Togg?UY`;9xk0kFoA8fdf{}h>!&8L0ZbwHBiRo|JED{0aCxY}_ZLR-2t`P@sgeN24%vnU{%^8mmI2UvZo2Fix>rxQ_bl;Cy!=6v4 zxTlEt3?f?hL@%++lG00Jr5E-r-JW8`l3fRvh>f1ioh6f;`5?_OIdW+5lcfL%h*Cn~ zD7$Z?rJ2#L3QVe^bEY!Ax+K;s2Q;~MDP!%&I00-TL$IZAiXWp~x?}J@ROL;PR^2*9 ze%A=Zg>FEL3e4|Ji4f)ZV|RG7!HUu;nGj6v`kT?4UlKURcU0^huSwVEMX&nmlHZpR z{ySw|)U&KYkmEZbhYlsOLhRNtMbchidqq^T1;C<}?PJbNw4%{38lImnT7>$l{9fG2 z<*FYedv~8Ydv}kUy}KPMvfC|!`(IfmB$8kD@!nFApS$I3`w7ks%l=%uAZA~ThdFp3 za!0nhuojZm0mi))BO4+t`D0LGUo5e@w+6Q<$TU<3KHGwu)(Y!znI5 zXU`F}?)Kl@MY7)uhRgsr&1dI}YUIl!=PaO!E5{@iwQp-B)n=uylH%?BO^0Jm_%;UK zw*V6EV2jr4$NO}__<`TspsenYhJwEw(D?KE*=BesczADYQd^3Kv7++Ur<~c3essI~ zDVLA2GE~2HgOC29gmw_>?N5s$VyR#96$;e(&H0hCn4WGHz7uiKbb{=dv_2>0NAgGpP zAIG?u1yMQ|;lajGLho*n4{WN(K2$knCq&kNPAL=FXTB42sscd3V1)*;-y19*hO8ZD zvL_tylbBrkrjbhrq4c7yqH|{VG~&lFE=&qk2K%rUl(Umq7Kp^|vGz2))vk|hLtfoB^$Ko1EOGEMF~3*fB5iJoi!ME9@{bphoE?0i znt|1Jbi_GR-9;)LUhC*2k{}IceeIiiS6bja-@e(1b8^0VC$l-}oXav!8$N>>BRdj1 zwYgGL2Qh^DD}Fy-6Sp5`A?~GkBSF~5|CXguTD*Nu_ae^{5uj^BhEs7EqHOB`IWb~} zm-H8li%f}r;5QwBj$xe0zuU1V`0q0;G(T{&D%Jf&!)b5R+qUMnGld>w!z9T1(HtxW zZF4XO5LuM$38<111YH>z(PwgpC$Z)mDNv=bSY__rAeM)sK&wGL7@8=MCEp|5t1VXH ztbi}a9|zj_Q@o*ZABD1K*I)YT#-pggkFvuKZ;;wpL?Zb-tc zZ6rQ9hVNhf6(GArth}*?xsr;d-w5FECCaf^gziLRa{Rui1|CfTRBs8W3>-GU*7^qB ze@(umdrc!7pYAeMH7rP$Uy0uH7JC4JJ&IsR+%lkPI0~NT1Q#5W*)4eXvU4t2Ez)V_zSRKkRQU0Oy z3Dt=#uS30C@nZng2gqn3@|wLg&!)NLmU#bw6f<*nMFw)1Z{u5?h#cDWig?YD*<&Y4 z9MB52Y(GJIgnhCF`$$D0io>WE_lTVEYfzE>%2a<{+9#x7OG3)Oz-f`x?zAYi;jISG zrhOzvbFv^!wlzO=8ku&|4#YZzp~4Y8YQN|?cYW5IA|_$a_{)Q4N5{0AC{#v(VG;)s zLMh&Jw!8i8c9TUqv0y+-tQ+Dtgsybnt)rn4^=WX)`Ql~k&rsfHBU>Qd{*^2UHoYJQcf<0; zF0Vg6tW~)@|AFBLsiWDm{Uqb{v>G)@(g;*jz0ZtiK18u@v z0^<9y=$(SUC1}_Yiiha1%H_lc!tS^EbdxPjo_f-u?Zz5R=q!p$k=Xz92_0S)UuMf7 zDYRr5#kUNSt@`ZyWsjZ%ERAn}Y@hud9%a|=_F+jJbfs~&Pnj5DT?#~eEd|3-$TWRJ z)p}$JmF1EZ)03{qQL`8bKk_tv2<{a!_($l=mTE{D*4d5w8;*-;i-EoO;r4)M+hA7K z$N9e8wJkBq^hoiF0pC*!Rf&Fy5>C?Josxzi#sVfKCCGBGeFR0CyuC2kFT%7Bb80d5 zpwrZnPZw-{*HzH}+qPlqiZRPa0)b)J>BrE3fqb+8?(6aqlv>WZdBU1k28RGk zO%YE}1dv8=xuw{}{5Ub!pz_&furU~m)u=Q1m~IhOKO^7ezuEKk?}K4?w9%TbeuV~s z-PmGc3Fr&XHwWU)bgyw{zFAY$sK{q7(S%%%HUYCP?3sfuWXetNxqcP09gZ|(K6bRG z`4IhD71_m9MhTCFeLFl;CX-mk#FlmXp(@rQPQgMpRODZ=;J8z!qDVU5acyfbK1}c_ zuI~(7|bn7{{Ol7=!@g?#vhVBBmKgoQQ27aQp1-qKn z?1Tnx`??cKw`EDdc>m8kq`CYX7HOk|AJ`?JxDF@Nw#a{(f}BQCkke2KB9wlV7D2;f zs*4AI-q8(g+IhDP@aQrJ8WpXu!ZJwA5&T*#h5ziypK6OBLfxC*n*cAP&jC^>wG}4~sM_5^ldno74WPHJJ{S&Q+ z^%Ke{&)X4GBkhpAr;UvUW87_d?hEAsp1ss$mM3&#fvM@=_DUV>cB#fQHwFfqIq&wh zaZ*w6H;_3P_|5$I3WGR?Zf@3Ah7XlY5Sg#*39Ry&0DD8_s1MrAnYeVLcjYtI|st0 zG9o`S+S+|`Is=id)g@j?fAUY4CsQ}R%;S-3+~SV(*Di5J`i3iVwOHrkiWGY{LkUq- z_GL{d4oNW<6@LXeH8_ItY{AF~?!(HAb5XMGITu!>!`F&9W;Xmcyi7C_ahGe2m}`#D zaqGYdP4*OUN{T%Jd-}3A{s`?>^hvuWP>U8&UGxfQd|KpDj@8A=Vl$;72AxNwETkvO zW6qf(boj`QSQBo2HrCubFZyz0qhPSpf*;U==u<*J?u}gU`X7u9z_Q2YeR0kbNhL4H zbk?AWE^GC7#Sz;#vlLF57Q{u7k}OYvl?KZxD}G?LZ| zeZoc_9+wE_i<_ni=&_oO->$}pWyb}Rryi{9BLE3T7dpvqlbIsvmnLq09(IUD1HIp7 ziCzf9ve97>2u z+b^I46b1FcwWh_X9QI_5JiR;neo;yqs`}s+%6#o|=3^UHgs=Jq+4>#DCnr-X?dV8; z`yG8?TjJ4?oW^)yo9pOEeoyn(dGrB+b{(#titykjZpdX>H+xE(=U+`A-?uLTi+3C* zS@L^f9uyv7x@;T?@l%$>&vj`Y3$nD|<+*U@dtbaTMYZK9mc8P(BgWiN8?db`PIj@UFV@^o0Jrmv+q-Pf>T_VDs@|jc+E35K0(P#wG)g-CWNvn@V0cy+Rg+}<-X#Y8^QGcwggJ{=#~ ze07?M+}ksHcCbgajfSy0FCAXV3m8T!4Uhdr2_w!t3-J$AMpYHe=~2lscr9o*Gs^@!B( zU3)k~5uNv?=p1E=Y(FE&_O-+6gw!^-Zv0Luj6wzP*of$Sd+CzxKRAp~_-{z0vGC7C zI<*DB*Fc&<;;Ii>{jEe8_o&~uzNW9{Y&RZA(N!3=?aO-mAsQVS+$qeqSTAjTEp^R+ zmwcTytW!H{EU4E8SzX|z4c8IqP(mwVOCj);b5Y;6DOI^k)M95OX=;qnikNBC37j9`1X_1|gy2;FDZ4cA|L&DASCKQ%cr|4!=s2fvj1 zAGhuYr^xi>*1d4*bB}9y0hcv+Tm!-PIQ$lbJoJRBQR=-6)c#4zhQAqsZYaz+7HW&0397)nw3%&^E+?eLu zT$~QeJFJ6G3qA+ieXRy5`2utQ^UNfYCh9eF4uR06oqEl&cL@CDj9!!b zEP+1}*n5z`O9XEGfWUJEE)EmeMc}HF1lrC(Bo4(uJBK}!$d#w#qxwnInA0vtax)zlQgU5gUCt=3s*PRyWm#4kx4cc+U|Bag&(+RTF0LlNTrPy0w85%yp5}tM zN!+|{aZ8|+#ChISW53rq&(%(rN_nRUOPeS6hZZhfG;h%yE*dMXTw5VGD97D*{?B{- zp2NMUHFXoL>N2iMwl7oVI#@0}<0iG$+^8nkuE}?E39H;7*qw?O(m8j&bD8?OTDe@0 z6kqw1tme;{IZf`8%bRMgF?W)YuW-Tiy!bC`Rym(?Ms;6GOM|M-y=-!8seK9MgbfUY zDX{BfwpCWQy0X$FEMv@WtEgSam31*FanWLZS*3rK++Jp7)mS-x2B}8wAKYLuY#X>B zn_m5$3vJ~-G)r} z`~Ptl<<|KFH_7F9T&PIzy05}pv99)J?hxd1%K(1m>np3Lj2)jlae`Gc2`BS%52wX# zo5_mXpq)ejxpT1g7Ao*_ z3$_y>Xv;-`lA`;*LMM@ZeXN~P(p?EE^|;8hrmVW6%96Wv<>L0Z+dF%tDqTLVXlbd% z46LE%bEJ;HD5+<7t6a0ZYW&2!OS#j>M)*~e5UIDWmkWqjm6gkV%9?jt$5p-DkS$?@ zzV>~6_T&SX*Qu>e*#263OAnkQn|*hmb7!APe}|HIS>aF^~O#7;2 zb)FiAKb%yqlbVXg|9mx6U7#>wP#3ElHA+oXlhmbZnz~%&tLf?rb)_m$g=&T>QZv;G zwNhQyK3ffcYiawO_Id3k?Tg!&v@dL*-(K84w|$nnwEZ%5m0F~RwJ%o1YKfY!7AWqB zRddxmwN#bFy20}Tm;6UF)Ohzu>`K)Jr6wd4B+%Gfm717%k=U}`rqrZfUNOD6U8zfZ zXR*(s?oeuSpBwsQ_7RJU%aXFi4)ZRhrt}@%m(blxO-;^8Ce)x*-g%?WBeYSe+>})* zBT^JfqUq;f!Y-R?{~^)`3?K95PT1EKq?#%LWY`qy`nJ%E9vn_Z_ST z7pQd^i!(eKDx*Nv3@ILxHbf06P}dHB>}@1*&dD$%p|X)QAGb#hq57rK|#_N6sGEd!!m!pnMn3xvcRrG=AyY5C0(R0 zDo|hZUgb^pDsO?hIct8_d08r}KviWg$WF;t*#+wIi>F;|*K~2tg*kTU#!+{TimzS5 z*IjbQCBpZZII zdG0)wSD>oLFB+dZUX3qMYbPw6aQ*}}p+Jq9m_JcU!x!76D<;{YahG0+Vz}qu=*vc5 z)-y&aYpVTUkNC?~sk%X}AueAnQ>#=Zq3LS5x>0?N&=sI-nYx+Km7wiSs)|s7x>~JP zYY7#qYgDTuDG^-qd-j zNkX|-<>I@*{LP;`3*8ai^Nt`4%NBTZ5cBw--h1A>7X%f}DSAZ2vtv3*&6)JhKKmPq*EeCOVfb zqU)872{u*3Kl-t}e2NukL%H|7KSz6;=LbD=Tq`-)ua-| zL>(Ev-KhWUlr>mi-p_osb;ml~jCNd#Xf9j5xAz7GaQy(Rc46yTwe1Md?P9JvR>4@z66E4 z9p;Oi>f8+|b1Pg4;KOD|7}3Sjl~dcu{GT)AeS@+}(VO2bkN6AS8pV8T#9#RMB%OLz zUg~=+R%`E2cclT7SjlCL3=BwcE_UJ>{>P_`WLPG6|kL({O5FT}0LPg%*!DGJ7x0RX4MISrp_&r4r9;L-bg;*F=X z0(u*hJF|lJHZT0sCiCy48;M9O_-yy+`Tx{e|rOXcSF+viJqi z6ntzJgNGGUA5@(Vl3f_RF+(%3z$OE)4zZC^sMj0rc$-!hnW0~^O(J?xTK#|u*SoLm z5~BM}p!5^G1c{;uu{*@ef%plsF#Pi+nH9snox#qYUjvZ06 zqdhsIa+xcob)p&x<~mH0dVi(C-no?g~?4CD#&^J<)`Pge4%MTtZ79hdmWozVg4OHTYZ z-4PyhR!v_~l3t(|p;mBHJB`mci-t=qE8(j1G9xlpQyKG{KajWj3x~Tg>ZTnMnHSpN zvuy?WQl3N>b9wHA(z{f(^9U8&mCmbJ4m7(dFzSH1D&_FQnkdOfZHsaMYJ4gHu-&`l zKf}liAFrK8mB>&gsF{U+bRkANM5BZu{wzI4RMI%SD>I7!$~L@(_7U)g*Y*(W6-U+A(WI>{1FPBc+p&08 ztv#z=OOmU3ub3Xk1kHxlokR@oukGcy@cu#mw7x_@`TlipO2B0a_=Od)M*@Z<;8#|_ zjvT8SP_BUwScakgmHEun#&a@6zooL8q_T*9439z1jr)`RP6R3w0#x`CAXXhHXo6Q2 z8!H`^Mp3$8XQ3KH8{;l(#T%4A(Jt&%sTF*5^0-MJ+c-u$7$|>xtyABX_ldn;PR-_u@2!jOxG$$4%Skgi@wMyEA}kg^ zWKDqUhu>;=%mBc}tpaoeo5ElD;=1&=FdH>`CV?}?h(WMdSwf)vS1k28PK=!2(9g@H zvJF%;?2@mopBGhAB!awRNbFaH>m<@-#WJbhuy96M{Ea9|)?)UTPY7#$M0{EzTGFa* zp?9okhmR>ycdEP4&2-jc3E)amo%VtPH?@;BV_uH`Ncs1qOnXS+Wgi$~OUh!1*!m|`oKHG5g8MgNFMe6@nX=dObr|p zWo4EiAB+Y&hWNjfyu=+2zQ!DCd*8apAkHCN5bVdS$|k9eLDip-8?jK;-^^Y5*^!{B zahP=Npx8_f=Nd8zqp8*N^oQFPXC0VQ*5jY~K3_opml(CvQ*4uQHNWS>qM<%#GVb_~ z?Q{7&^+yCQbD3aeSs5myd$_PPqN3>A)98|TldJt8*Mz0OvZS(QSy?}W-Djt6gsg4? zfPf!;W?uO$_rXq0Oc$B51AWaMZH(1F8zH!$wCDF%gOIGLuHi46Z#^`ozo^?M%7Tec*p7>9;!;(nArsv*N)!&x$&AUDXA~3G$GKx9?ylSpTNfAYz3GsK* z;J-#ki<&N@1|yWa%`IK#K$mTOBEN9MrTqW68LlAP1(sm8pTrGr0XlDs-ErJ%m4&|L zjvsc0{?;AeY=r#o)-GrIyP-yR{1*<!)gA^2>k@T*G=x0e|3g_ z3ug7pYsUeh|0}Rwt@lWxl2Jywl&axW*G7(%NY4?3M?{w`)FpAYw~0p!Lv9r#CDhS4P6UTAiRC$XMZyZ>kmvO=U;(kzM=zlN=Y&kNE>2_1KS-=`5l&!P?`bH9t~EqkSSL&DW`vV!6ygy8{g{`eT>-`XJ7-@53$UIY^ZZ=&i#d>V_tx zms+Ap8T6Q|l&Vf~D{P(+Mg7vys5+gtz?_K>w7fXtg4o<6GF>OJe0^4kw2&FjuSqPC zah7Jjb_E@lQv5dy52HjiC9eWxo-YuksU%ojs^?pO$x;BZ^5AB^ga1HL6DAzd1#3%1 zU-xxu!gh)RfVQ;r77xj){{Y=oCJ$fDMSVv6}X;qF~frnNW4-+1gMrXh{=DSIZRn*fDZ=vwnB z?fI-ptTdC33l7w#80N1pOLh*kS87^~o%e1tQi463!ou-Yt+-gGntP_Lq*}DXXHMx$*GGxEM_jJ5Ev^+Usd@xy){>fDp|8a!jM#?5nL!Q< zqm~1CN}>NZswOB?s!lNYo8LWd4nE&B)b5Vo*Q=_B&J%Rc z@!`R?`OHJI!)>o^5k*JnE)_eqj6imEMEnn7yfw+RKDQB$>B+S%7+`xRf2yxKZTo}N zm5l;BEmCC3sH99+5|yKvSs&wNQd4$Ssey+C%7tCd)iRTJ$EVV%aF3#20~`DUnxlVk zDo2{7jGhxCVGjY%r0X(q7Q2u)<5_lzY$tcrKqwK{ghy~Cj=oo4`U>|l%Zgu(VXtRXqQ=xx{YE(-Pl`y@`U%Oi;$Izs( z8@)jqoXll#)LmGBj&S@xBr-AT$Hc&PLDa6hL!p#Waut&-VpcNC=fJiJnq1hT9C#b` zM_s?ohnieO6ib!ui;I0evZuO@45o0Hh4S@ArHwEr};+X zv198ePMm1WTNaE&f+1i9p=?O;Di9cgp!EyL3wAhjKVCRp#7;ID^*x7ATs&EC1Xc(54H>bN zD;Q2$R~N6!;V37J~<}CCe0xb!Lg_x1)dCGGO`NhaL z9F7@Mco)`9W70u9G5Rx+ul}+DT{jXCbJf$Xec>?WXOxG7B>8(?1QRaLL)23+5~fJ! zd9IThAM6W9>JH}{Ls$N1|AtQyn#SpAmEknLjRWs zf{Z#Tn*5|9dNM}S&@1S~UQ*S+gE#YQ?}~HDol{Z7x<*jR?A#z?4i@mNRjYP(=+JJ) zn5Ack|MR0-IVaC%joLG;IgT6c63f3e!hdUt__wykfe8iW-MRU!h@z3p$!W```)&yY zZt*Pw@V55h70Va@P(^)cmLW)qtWH7d`lnm-MhT*(N(^M53h>?Qk&|FRxkI> z|KYOg8eeqz!z*X9fT%zmwuJo|gj_f1$A6Y#@H-Z}+A#;49oHiXWW^&g`LviBVaBf= z4~#i&&5s_?&$4&AN%l?=vLjp$plMv`cj_evmI>O#83qBx5xpUS1Hlh?#epEBi3~`) i7uDKUgtj~f`IZB=dei9#`;7B}xwCGWGpoEDA@RRP+E7yf diff --git a/virt/qemu/centos/files/bridge.conf b/virt/qemu/centos/files/bridge.conf deleted file mode 100644 index a573665d3..000000000 --- a/virt/qemu/centos/files/bridge.conf +++ /dev/null @@ -1 +0,0 @@ -allow virbr0 diff --git a/virt/qemu/centos/files/build_configure.sh b/virt/qemu/centos/files/build_configure.sh deleted file mode 100755 index c487d9971..000000000 --- a/virt/qemu/centos/files/build_configure.sh +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/sh - -_prefix=$1 -shift -_libdir=$1 -shift -_sysconfdir=$1 -shift -_localstatedir=$1 -shift -_libexecdir=$1 -shift -pkgname=$1 -shift -arch=$1 -shift -nvr=$1 -shift -optflags=$1 -shift -have_fdt=$1 -shift -have_gluster=$1 -shift -have_guest_agent=$1 -shift -have_numa=$1 -shift -have_rbd=$1 -shift -have_rdma=$1 -shift -have_seccomp=$1 -shift -have_spice=$1 -shift -have_usbredir=$1 -shift -have_tcmalloc=$1 -shift - - -if [ "$have_rbd" == "enable" ]; then - rbd_driver=rbd, -fi - -if [ "$have_gluster" == "enable" ]; then - gluster_driver=gluster, -fi - -./configure \ - --prefix=${_prefix} \ - --libdir=${_libdir} \ - --sysconfdir=${_sysconfdir} \ - --interp-prefix=${_prefix}/qemu-%M \ - --localstatedir=${_localstatedir} \ - --libexecdir=${_libexecdir} \ - --extra-ldflags="$extraldflags -pie -Wl,-z,relro -Wl,-z,now" \ - --extra-cflags="${optflags} -fPIE -DPIE -O2" \ - --with-pkgversion=${nvr} \ - --with-confsuffix=/${pkgname} \ - --with-coroutine=ucontext \ - --disable-bluez \ - --disable-brlapi \ - --enable-cap-ng \ - --enable-coroutine-pool \ - --disable-curl \ - --enable-curses \ - --disable-debug-tcg \ - --enable-docs \ - --disable-gtk \ - --enable-kvm \ - --disable-libiscsi \ - --disable-libnfs \ - --disable-libssh2 \ - --disable-libusb \ - --disable-bzip2 \ - --enable-linux-aio \ - --enable-live-block-migration \ - --disable-lzo \ - --disable-opengl \ - --enable-pie \ - --disable-qom-cast-debug \ - --disable-sdl \ - --enable-snappy \ - --disable-sparse \ - --disable-strip \ - --enable-tpm \ - --enable-trace-backend=nop \ - --disable-uuid \ - --disable-vde \ - --disable-vhdx \ - --disable-vhost-scsi \ - --enable-vhost-net \ - --enable-virtfs \ - --disable-vnc-jpeg \ - --disable-vnc-png \ - --disable-vnc-sasl \ - --disable-vte \ - --enable-werror \ - --disable-xen \ - --disable-xfsctl \ - --enable-attr \ - --${have_fdt}-fdt \ - --${have_gluster}-glusterfs \ - --${have_guest_agent}-guest-agent \ - --${have_numa}-numa \ - --${have_rbd}-rbd \ - --${have_rdma}-rdma \ - --${have_seccomp}-seccomp \ - --${have_spice}-spice \ - --${have_usbredir}-usb-redir \ - --${have_tcmalloc}-tcmalloc \ - --audio-drv-list=pa,alsa \ - --block-drv-rw-whitelist=qcow2,raw,file,host_device,nbd,iscsi,${gluster_driver}${rbd_driver}blkdebug \ - --block-drv-ro-whitelist=vmdk,vhdx,vpc,https,ssh \ - "$@" diff --git a/virt/qemu/centos/files/ksm.service b/virt/qemu/centos/files/ksm.service deleted file mode 100644 index 35c6f1de8..000000000 --- a/virt/qemu/centos/files/ksm.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Kernel Samepage Merging -ConditionPathExists=/sys/kernel/mm/ksm - -[Service] -Type=oneshot -RemainAfterExit=yes -EnvironmentFile=-/etc/sysconfig/ksm -ExecStart=/usr/libexec/ksmctl start -ExecStop=/usr/libexec/ksmctl stop - -[Install] -WantedBy=multi-user.target diff --git a/virt/qemu/centos/files/ksm.sysconfig b/virt/qemu/centos/files/ksm.sysconfig deleted file mode 100644 index d99656d70..000000000 --- a/virt/qemu/centos/files/ksm.sysconfig +++ /dev/null @@ -1,4 +0,0 @@ -# The maximum number of unswappable kernel pages -# which may be allocated by ksm (0 for unlimited) -# If unset, defaults to half of total memory -# KSM_MAX_KERNEL_PAGES= diff --git a/virt/qemu/centos/files/ksmctl.c b/virt/qemu/centos/files/ksmctl.c deleted file mode 100644 index af3959102..000000000 --- a/virt/qemu/centos/files/ksmctl.c +++ /dev/null @@ -1,77 +0,0 @@ -/* Start/stop KSM, for systemd. - * Copyright (C) 2009, 2011 Red Hat, Inc. - * Written by Paolo Bonzini . - * Based on the original sysvinit script by Dan Kenigsberg - * This file is distributed under the GNU General Public License, version 2 - * or later. */ - -#include -#include -#include -#include -#include -#include - -#define KSM_MAX_KERNEL_PAGES_FILE "/sys/kernel/mm/ksm/max_kernel_pages" -#define KSM_RUN_FILE "/sys/kernel/mm/ksm/run" - -char *program_name; - -int usage(void) -{ - fprintf(stderr, "Usage: %s {start|stop}\n", program_name); - return 1; -} - -int write_value(uint64_t value, char *filename) -{ - FILE *fp; - if (!(fp = fopen(filename, "w")) || - fprintf(fp, "%llu\n", (unsigned long long) value) == EOF || - fflush(fp) == EOF || - fclose(fp) == EOF) - return 1; - - return 0; -} - -uint64_t ksm_max_kernel_pages() -{ - char *var = getenv("KSM_MAX_KERNEL_PAGES"); - char *endptr; - uint64_t value; - if (var && *var) { - value = strtoll(var, &endptr, 0); - if (value < LLONG_MAX && !*endptr) - return value; - } - /* Unless KSM_MAX_KERNEL_PAGES is set, let KSM munch up to half of - * total memory. */ - return sysconf(_SC_PHYS_PAGES) / 2; -} - -int start(void) -{ - if (access(KSM_MAX_KERNEL_PAGES_FILE, R_OK) >= 0) - write_value(ksm_max_kernel_pages(), KSM_MAX_KERNEL_PAGES_FILE); - return write_value(1, KSM_RUN_FILE); -} - -int stop(void) -{ - return write_value(0, KSM_RUN_FILE); -} - -int main(int argc, char **argv) -{ - program_name = argv[0]; - if (argc < 2) { - return usage(); - } else if (!strcmp(argv[1], "start")) { - return start(); - } else if (!strcmp(argv[1], "stop")) { - return stop(); - } else { - return usage(); - } -} diff --git a/virt/qemu/centos/files/ksmtuned b/virt/qemu/centos/files/ksmtuned deleted file mode 100644 index 320ce7405..000000000 --- a/virt/qemu/centos/files/ksmtuned +++ /dev/null @@ -1,138 +0,0 @@ -#!/bin/bash -# -# Copyright 2009 Red Hat, Inc. and/or its affiliates. -# Released under the GPL -# -# Author: Dan Kenigsberg -# -# ksmtuned - a simple script that controls whether (and with what vigor) ksm -# should search for duplicated pages. -# -# starts ksm when memory commited to qemu processes exceeds a threshold, and -# make ksm work harder and harder untill memory load falls below that -# threshold. -# -# send SIGUSR1 to this process right after a new qemu process is started, or -# following its death, to retune ksm accordingly -# -# needs testing and ironing. contact danken@redhat.com if something breaks. - -if [ -f /etc/ksmtuned.conf ]; then - . /etc/ksmtuned.conf -fi - -debug() { - if [ -n "$DEBUG" ]; then - s="`/bin/date`: $*" - [ -n "$LOGFILE" ] && echo "$s" >> "$LOGFILE" || echo "$s" - fi -} - - -KSM_MONITOR_INTERVAL=${KSM_MONITOR_INTERVAL:-60} -KSM_NPAGES_BOOST=${KSM_NPAGES_BOOST:-300} -KSM_NPAGES_DECAY=${KSM_NPAGES_DECAY:--50} - -KSM_NPAGES_MIN=${KSM_NPAGES_MIN:-64} -KSM_NPAGES_MAX=${KSM_NPAGES_MAX:-1250} -# millisecond sleep between ksm scans for 16Gb server. Smaller servers sleep -# more, bigger sleep less. -KSM_SLEEP_MSEC=${KSM_SLEEP_MSEC:-10} - -KSM_THRES_COEF=${KSM_THRES_COEF:-20} -KSM_THRES_CONST=${KSM_THRES_CONST:-2048} - -total=`awk '/^MemTotal:/ {print $2}' /proc/meminfo` -debug total $total - -npages=0 -sleep=$[KSM_SLEEP_MSEC * 16 * 1024 * 1024 / total] -[ $sleep -le 10 ] && sleep=10 -debug sleep $sleep -thres=$[total * KSM_THRES_COEF / 100] -if [ $KSM_THRES_CONST -gt $thres ]; then - thres=$KSM_THRES_CONST -fi -debug thres $thres - -KSMCTL () { - case x$1 in - xstop) - echo 0 > /sys/kernel/mm/ksm/run - ;; - xstart) - echo $2 > /sys/kernel/mm/ksm/pages_to_scan - echo $3 > /sys/kernel/mm/ksm/sleep_millisecs - echo 1 > /sys/kernel/mm/ksm/run - ;; - esac -} - -committed_memory () { - local pidlist - pidlist=$(pgrep -d ' ' -- '^qemu(-kvm|:.{1,11})$') - if [ -n "$pidlist" ]; then - ps -p "$pidlist" -o rsz= - fi | awk '{ sum += $1 }; END { print 0+sum }' -} - -free_memory () { - awk '/^(MemFree|Buffers|Cached):/ {free += $2}; END {print free}' \ - /proc/meminfo -} - -increase_npages() { - local delta - delta=${1:-0} - npages=$[npages + delta] - if [ $npages -lt $KSM_NPAGES_MIN ]; then - npages=$KSM_NPAGES_MIN - elif [ $npages -gt $KSM_NPAGES_MAX ]; then - npages=$KSM_NPAGES_MAX - fi - echo $npages -} - - -adjust () { - local free committed - free=`free_memory` - committed=`committed_memory` - debug committed $committed free $free - if [ $[committed + thres] -lt $total -a $free -gt $thres ]; then - KSMCTL stop - debug "$[committed + thres] < $total and free > $thres, stop ksm" - return 1 - fi - debug "$[committed + thres] > $total, start ksm" - if [ $free -lt $thres ]; then - npages=`increase_npages $KSM_NPAGES_BOOST` - debug "$free < $thres, boost" - else - npages=`increase_npages $KSM_NPAGES_DECAY` - debug "$free > $thres, decay" - fi - KSMCTL start $npages $sleep - debug "KSMCTL start $npages $sleep" - return 0 -} - -function nothing () { - : -} - -loop () { - trap nothing SIGUSR1 - while true - do - sleep $KSM_MONITOR_INTERVAL & - wait $! - adjust - done -} - -PIDFILE=${PIDFILE-/var/run/ksmtune.pid} -if touch "$PIDFILE"; then - loop & - echo $! > "$PIDFILE" -fi diff --git a/virt/qemu/centos/files/ksmtuned.conf b/virt/qemu/centos/files/ksmtuned.conf deleted file mode 100644 index fc4518cf9..000000000 --- a/virt/qemu/centos/files/ksmtuned.conf +++ /dev/null @@ -1,21 +0,0 @@ -# Configuration file for ksmtuned. - -# How long ksmtuned should sleep between tuning adjustments -# KSM_MONITOR_INTERVAL=60 - -# Millisecond sleep between ksm scans for 16Gb server. -# Smaller servers sleep more, bigger sleep less. -# KSM_SLEEP_MSEC=10 - -# KSM_NPAGES_BOOST=300 -# KSM_NPAGES_DECAY=-50 -# KSM_NPAGES_MIN=64 -# KSM_NPAGES_MAX=1250 - -# KSM_THRES_COEF=20 -# KSM_THRES_CONST=2048 - -# uncomment the following if you want ksmtuned debug info - -# LOGFILE=/var/log/ksmtuned -# DEBUG=1 diff --git a/virt/qemu/centos/files/ksmtuned.service b/virt/qemu/centos/files/ksmtuned.service deleted file mode 100644 index 39febcca7..000000000 --- a/virt/qemu/centos/files/ksmtuned.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Kernel Samepage Merging (KSM) Tuning Daemon -After=ksm.service -Requires=ksm.service - -[Service] -ExecStart=/usr/sbin/ksmtuned -ExecReload=/bin/kill -USR1 $MAINPID -Type=forking - -[Install] -WantedBy=multi-user.target diff --git a/virt/qemu/centos/files/kvm-setup b/virt/qemu/centos/files/kvm-setup deleted file mode 100644 index 14721bdcd..000000000 --- a/virt/qemu/centos/files/kvm-setup +++ /dev/null @@ -1,31 +0,0 @@ -#! /bin/bash - -kvm_setup_powerpc () { - if grep '^platform[[:space:]]*:[[:space:]]*PowerNV' /proc/cpuinfo > /dev/null; then - # PowerNV platform, which is KVM HV capable - - if [ -z "$SUBCORES" ]; then - SUBCORES=1 - fi - - # Step 1. Load the KVM HVmodule - if ! modprobe -b kvm_hv; then - return - fi - - # Step 2. Configure subcore mode - # FIXME: Should we check for POWER8 first? - /usr/sbin/ppc64_cpu --subcores-per-core=$SUBCORES - - # Step 3. Disable SMT (multithreading) - /usr/sbin/ppc64_cpu --smt=off - fi -} - -case $(uname -m) in - ppc64|ppc64le) - kvm_setup_powerpc - ;; -esac - -exit 0 diff --git a/virt/qemu/centos/files/kvm-setup.service b/virt/qemu/centos/files/kvm-setup.service deleted file mode 100644 index 9c4bf9723..000000000 --- a/virt/qemu/centos/files/kvm-setup.service +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=Perform system configuration to prepare system to run KVM guests -# Offlining CPUs can cause irqbalance to throw warnings if it's running -Before=irqbalance.service -# libvirtd reads CPU topology at startup, so change it before -Before=libvirtd.service - -[Service] -Type=oneshot -EnvironmentFile=-/etc/sysconfig/kvm -ExecStart=/usr/lib/systemd/kvm-setup - -[Install] -WantedBy=multi-user.target diff --git a/virt/qemu/centos/files/kvm.conf b/virt/qemu/centos/files/kvm.conf deleted file mode 100644 index 3f7842a13..000000000 --- a/virt/qemu/centos/files/kvm.conf +++ /dev/null @@ -1,12 +0,0 @@ -# Setting modprobe kvm_intel/kvm_amd nested = 1 -# only enables Nested Virtualization until the next reboot or -# module reload. Uncomment the option applicable -# to your system below to enable the feature permanently. -# -# User changes in this file are preserved across upgrades. -# -# For Intel -#options kvm_intel nested=1 -# -# For AMD -#options kvm_amd nested=1 diff --git a/virt/qemu/centos/files/qemu-ga.sysconfig b/virt/qemu/centos/files/qemu-ga.sysconfig deleted file mode 100644 index f54018e53..000000000 --- a/virt/qemu/centos/files/qemu-ga.sysconfig +++ /dev/null @@ -1,19 +0,0 @@ -# This is a systemd environment file, not a shell script. -# It provides settings for "/lib/systemd/system/qemu-guest-agent.service". - -# Comma-separated blacklist of RPCs to disable, or empty list to enable all. -# -# You can get the list of RPC commands using "qemu-ga --blacklist='?'". -# There should be no spaces between commas and commands in the blacklist. -BLACKLIST_RPC=guest-file-open,guest-file-close,guest-file-read,guest-file-write,guest-file-seek,guest-file-flush - -# Fsfreeze hook script specification. -# -# FSFREEZE_HOOK_PATHNAME=/dev/null : disables the feature. -# -# FSFREEZE_HOOK_PATHNAME=/path/to/executable : enables the feature with the -# specified binary or shell script. -# -# FSFREEZE_HOOK_PATHNAME= : enables the feature with the -# default value (invoke "qemu-ga --help" to interrogate). -FSFREEZE_HOOK_PATHNAME=/etc/qemu-ga/fsfreeze-hook diff --git a/virt/qemu/centos/files/qemu-guest-agent.service b/virt/qemu/centos/files/qemu-guest-agent.service deleted file mode 100644 index 44b11cda9..000000000 --- a/virt/qemu/centos/files/qemu-guest-agent.service +++ /dev/null @@ -1,18 +0,0 @@ -[Unit] -Description=QEMU Guest Agent -BindsTo=dev-virtio\x2dports-org.qemu.guest_agent.0.device -After=dev-virtio\x2dports-org.qemu.guest_agent.0.device - -[Service] -UMask=0077 -EnvironmentFile=/etc/sysconfig/qemu-ga -ExecStart=/usr/bin/qemu-ga \ - --method=virtio-serial \ - --path=/dev/virtio-ports/org.qemu.guest_agent.0 \ - --blacklist=${BLACKLIST_RPC} \ - -F${FSFREEZE_HOOK_PATHNAME} -StandardError=syslog -Restart=always -RestartSec=0 - -[Install] diff --git a/virt/qemu/centos/files/qemu.binfmt b/virt/qemu/centos/files/qemu.binfmt deleted file mode 100644 index 63a58f473..000000000 --- a/virt/qemu/centos/files/qemu.binfmt +++ /dev/null @@ -1,17 +0,0 @@ -:qemu-i386:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-i386: -:qemu-i486:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-i386: -:qemu-alpha:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-alpha: -:qemu-arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm: -:qemu-armeb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-armeb: -:qemu-sparc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sparc: -:qemu-ppc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-ppc: -:qemu-m68k:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-m68k: -:qemu-mips:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mips: -:qemu-mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsel: -:qemu-mipsn32:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mipsn32: -:qemu-mipsn32el:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsn32el: -:qemu-mips64:M::\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mips64: -:qemu-mips64el:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mips64el: -:qemu-sh4:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-sh4: -:qemu-sh4eb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sh4eb: -:qemu-s390x:M::\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-s390x: diff --git a/virt/qemu/centos/files/rhel6-e1000.rom b/virt/qemu/centos/files/rhel6-e1000.rom deleted file mode 100644 index 078d26087f8c74bfb5ecf4275cd715d7a807abea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69120 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 diff --git a/virt/qemu/centos/files/rhel6-pcnet.rom b/virt/qemu/centos/files/rhel6-pcnet.rom deleted file mode 100644 index 2805a0f93aef14fb0e88bb9f86d8ad29762eadb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54784 zcmZs?2RvKh_c(mBBMAwD*fC3OHH(T(RT~tsDUH-F32JLlX+(AJmg=6m%+@Zt(H0eI zbX|?rWs`sU{r-Oc&-=cg_vVwE=bY!<=bU@y^E|oN?`GU&IWPwNzmI%C39tgFP98q$ z1b_^PAQ%(?;s6K$_3nOBmg4d&%d?`?BAKeWF~JmGTO~#>`vL0 zl*BYlN{Ints5BQqM>H%sBV%($hGB*-;J4k`L-sEKK%m30LH$AftEhimBUF(13jFm| z3Dq(IXQk;e)IqkjjbN6_&# zNGL#W9TTG?2&piD-7Tc!pLVk+@l6om-M3gIJywLM?G#bq=+sz1Td0Bp*d4f{KIV>v zHUhwu^oa#xq5p$MLgodpII^-ZPLF7OF0`5g?tpUUz!K;`>FL}pL>S#=;$kId3gb3kL^26tN{!)Wp`>S*@>AFZ{SE~CXu6( z66t$lSSh>7fT5uwfWiE8U(rDkeI>wH;H89WQw&Tb&o0P6IYS^#MKI7G(ztyT90UHz zSpjL{z(8lnd8SCt&43}jG73f)*&bmiG>n41CjA@izf8CP&B=#i6km)H& z3ICU`h*1I{8gL0{>Vkp40Xk!wkIT-|KF(K>{(GJP*>tXj$OK%G%0W65JO?d%_he9? z%Ge5fNls-(ru=8b-5I;1Sj;_1i5P(HPY+N*`bwyBK3j0}q%6wZhymK%P@Fc`MdJT4 z)J|wPoxzM2-7P}~PGx+7z6=fyMyZONJ?y17^%3N?EE8$c@>*8#r`{d#$dCbLfd3%> zkQc4mnaFeh`p(k=+v!w%MI8kw8;hn_#slY8{+y4d+aTis<{x||o!0(O4I)MO`V|S8 zh!TXG0N;oL9!c0@Sn$_`YVp^E&|q3S^>(31ap0g(Fi&fzw{{aixX9JI3B?^C6e#X! z>4t+aKy;>R;%zZXdyK%lLeWK{-Y>%H&0wXlWUK{*fdfKOpdS+fnkex7KLYP+aj;NW zO|IVofZ4){6%oi128uY8tNvFkKqwS7&I14aJ^H`DZ~vzk0Q@*#3#N1c_Ln*OIsA2e z1yV&;g7F;T?H?eEY61|vra@u74j}UB@UTEUq3GPAK_Q;pf`j1ITYg+Zpn*C9P}WmN z0?G!Q`+;tkcd=sT}1j)P8Ef(6s0K903zn+Ia8tStu1hl6OgtgN}Iee8~ zG|xhozM;2%gVPH-^HBgGQVPCyk>2_pPOrcE59Yi8lmF$YmH*;?iK+*^VNf3cz(65A zyo^t;r`bS6sDJ4VbQM-zf(cbBU{zOPbcPZE0ti(u!$e6rfLb?$00Y-)^zeV(BJYh9 z`J<>Tc+>q>=_b>3F99m%G9AKa!N7PR<&VfRbP5;>&?Q^I03h`*oejcLq(r7d#~eh` zUFqyOA=8`Ac}6#R4qA$+o`WX;&MZl~1GwQou-dNLTAsc(k1!r^iX;rJ^25|!awIqkFFL@#=wA;*M#MExa_$gq;Qs> zXG=~&)kAZN1`J5Kc-)w7YfUIIPbkhS*e{SK`k39Yb)zB`6A)N03aqUHMOIk z^h}ThWSYEEUT%RDCN+;JqL%!nS5jbfvbIRkD(g9@c0bPOx={F)>VpH8=!~H7 zf2qzNnv6VWC{*c29CAhG3x(;zT%in8>Y)EB8qE?@iKVC>lw|>`BF}nT)`}F4=B@;+ zoB^`U*&Xn93)4c`|Csz=*`^DH)56MZS-RE$jttPN#4I@4C9+R;%KkTn(<2jNOcv

ZfhG$MZFyCWnj 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 S-ji?iQ)ClDQVo5lPo&R~n_8tWxF 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�%q022-8eRre#u=J;dPJL{@>rR#V;pKVG?F$ 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 diff --git a/virt/qemu/centos/files/rhel6-rtl8139.rom b/virt/qemu/centos/files/rhel6-rtl8139.rom deleted file mode 100644 index a5273e8d6a1d83670ba0363007d73614a8e5a66d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54272 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

*@9cCZ;*#@v49^G^?1gYluDgeHz?yUXuvJe|21| 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

^ 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

onkC|f+0g4BuhLRdmE1f8?vi|$f(e|ZG# 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

;N6H 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 diff --git a/virt/qemu/centos/files/rhel6-virtio.rom b/virt/qemu/centos/files/rhel6-virtio.rom deleted file mode 100644 index fa24faee741da179812b13a38c10cad14b7083ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53248 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 1.7.5-1 -Requires: sgabios-bin -%endif -%ifnarch aarch64 -Requires: seavgabios-bin >= 1.9.1-4 -Requires: ipxe-roms-qemu >= 20160127-4 -%endif -%ifarch %{power64} -Requires: SLOF >= %{SLOF_gittagdate}-1.git%{SLOF_gittagcommit} -%endif -Requires: %{pkgname}-common%{?pkgsuffix} = %{epoch}:%{version}-%{release} -%if %{have_seccomp} -Requires: libseccomp >= 1.0.0 -%endif -# For compressed guest memory dumps -Requires: lzo snappy -%if %{have_gluster} -Requires: glusterfs-api >= 3.6.0 -%endif -%if %{have_kvm_setup} -Requires(post): systemd-units - %ifarch %{power64} -Requires: powerpc-utils - %endif -%endif -Requires: libusbx >= 1.0.19 -%if %{have_usbredir} -Requires: usbredir >= 0.7.1 -%endif - -# OOM killer breaks builds with parallel make on s390(x) -%ifarch s390 s390x - %define _smp_mflags %{nil} -%endif - -Source0: qemu-kvm-ev-%{version}.tar.gz - -Source1: qemu.binfmt -# Creates /dev/kvm -Source3: 80-kvm.rules -# KSM control scripts -# Source4: ksm.service -# Source5: ksm.sysconfig -# Source6: ksmctl.c -# Source7: ksmtuned.service -# Source8: ksmtuned -# Source9: ksmtuned.conf -Source10: qemu-guest-agent.service -Source11: 99-qemu-guest-agent.rules -Source12: bridge.conf -Source13: qemu-ga.sysconfig -Source14: rhel6-virtio.rom -Source15: rhel6-pcnet.rom -Source16: rhel6-rtl8139.rom -Source17: rhel6-ne2k_pci.rom -Source18: bios-256k.bin -Source19: README.rhel6-gpxe-source -Source20: rhel6-e1000.rom -Source21: kvm-setup -Source22: kvm-setup.service -Source23: 85-kvm.preset -Source24: build_configure.sh -Source25: kvm-unit-tests.git-4ea7633.tar.bz2 -Source26: vhost.conf -Source27: kvm.conf -Source28: 95-kvm-memlock.conf -Source29: keycodemapdb-16e5b07.tar.gz - -#WRS -Source127: qemu_clean -Source128: qemu_clean.service -Source129: qemu-system-x86.conf - - -BuildRequires: zlib-devel -BuildRequires: SDL-devel -BuildRequires: which -BuildRequires: texi2html -BuildRequires: gnutls-devel -BuildRequires: cyrus-sasl-devel -BuildRequires: libtool -BuildRequires: libaio-devel -BuildRequires: rsync -BuildRequires: python -BuildRequires: pciutils-devel -BuildRequires: pulseaudio-libs-devel -BuildRequires: libiscsi-devel -BuildRequires: ncurses-devel -BuildRequires: libattr-devel -BuildRequires: libusbx-devel >= 1.0.19 -BuildRequires: systemd-devel -%if %{have_usbredir} -BuildRequires: usbredir-devel >= 0.7.1 -%endif -BuildRequires: texinfo -%if %{have_spice} -BuildRequires: spice-protocol >= 0.12.2 -BuildRequires: spice-server-devel >= 0.12.0 -BuildRequires: libcacard-devel -# For smartcard NSS support -BuildRequires: nss-devel -%endif -%if %{have_seccomp} -BuildRequires: libseccomp-devel >= 1.0.0 -%endif -# For network block driver -BuildRequires: libcurl-devel -BuildRequires: libssh2-devel -%ifarch x86_64 -BuildRequires: librados2-devel -BuildRequires: librbd1-devel -%endif -%if %{have_gluster} -# For gluster block driver -BuildRequires: glusterfs-api-devel >= 3.6.0 -BuildRequires: glusterfs-devel -%endif -# We need both because the 'stap' binary is probed for by configure -BuildRequires: systemtap -BuildRequires: systemtap-sdt-devel -# For XFS discard support in raw-posix.c -# For VNC JPEG support -BuildRequires: libjpeg-devel -# For VNC PNG support -BuildRequires: libpng-devel -# For uuid generation -BuildRequires: libuuid-devel -# For BlueZ device support -BuildRequires: bluez-libs-devel -# For Braille device support -BuildRequires: brlapi-devel -# For test suite -BuildRequires: check-devel -# For virtfs -BuildRequires: libcap-devel -# Hard requirement for version >= 1.3 -BuildRequires: pixman-devel -# Documentation requirement -BuildRequires: perl-podlators -BuildRequires: texinfo -# For rdma -%if 0%{?have_librdma} -BuildRequires: librdmacm-devel -%endif -%if 0%{?have_tcmalloc} -BuildRequires: gperftools-devel -%endif -%if %{have_fdt} -BuildRequires: libfdt-devel >= 1.4.2 -%endif -# iasl and cpp for acpi generation (not a hard requirement as we can use -# pre-compiled files, but it's better to use this) -%ifarch %{ix86} x86_64 -BuildRequires: iasl -BuildRequires: cpp -%endif -# For compressed guest memory dumps -BuildRequires: lzo-devel snappy-devel -# For NUMA memory binding -BuildRequires: numactl-devel -BuildRequires: libgcrypt-devel - -# For kvm-unit-tests -%ifarch x86_64 -BuildRequires: binutils -BuildRequires: kernel-devel -%endif - -# WRS: build_configure.sh enables libcap-ng -BuildRequires: libcap-ng-devel - -Requires: qemu-img%{?pkgsuffix} = %{epoch}:%{version}-%{release} - -# RHEV-specific changes: -# We provide special suffix for qemu-kvm so the conflit is easy -# In addition, RHEV version should obsolete all RHEL version in case both -# RHEL and RHEV channels are used -%rhel_rhev_conflicts qemu-kvm - - -%define qemudocdir %{_docdir}/%{pkgname} - -%description -qemu-kvm is an open source virtualizer that provides hardware emulation for -the KVM hypervisor. qemu-kvm acts as a virtual machine monitor together with -the KVM kernel modules, and emulates the hardware for a full system such as -a PC and its assocated peripherals. - -As qemu-kvm requires no host kernel patches to run, it is safe and easy to use. - -%package -n qemu-img%{?pkgsuffix} -Summary: QEMU command line tool for manipulating disk images -Group: Development/Tools - -%rhel_rhev_conflicts qemu-img - -%description -n qemu-img%{?pkgsuffix} -This package provides a command line tool for manipulating disk images. - -%package -n qemu-kvm-common%{?pkgsuffix} -Summary: QEMU common files needed by all QEMU targets -Group: Development/Tools -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 - -%rhel_rhev_conflicts qemu-kvm-common - -%description -n qemu-kvm-common%{?pkgsuffix} -qemu-kvm is an open source virtualizer that provides hardware emulation for -the KVM hypervisor. - -This package provides documentation and auxiliary programs used with qemu-kvm. - -%package -n qemu-kvm-tools%{?pkgsuffix} -Summary: KVM debugging and diagnostics tools -Group: Development/Tools - -%rhel_rhev_conflicts qemu-kvm-tools - -%description -n qemu-kvm-tools%{?pkgsuffix} -This package contains some diagnostics and debugging tools for KVM, -such as kvm_stat. - -%if 0 -%package -n libcacard%{?pkgsuffix} -Summary: Common Access Card (CAC) Emulation -Group: Development/Libraries - -%rhel_rhev_conflicts libcacard - -%description -n libcacard%{?pkgsuffix} -Common Access Card (CAC) emulation library. - -%package -n libcacard-tools%{?pkgsuffix} -Summary: CAC Emulation tools -Group: Development/Libraries -Requires: libcacard%{?pkgsuffix} = %{epoch}:%{version}-%{release} -# older qemu-img has vscclient which is now in libcacard-tools -Requires: qemu-img%{?pkgsuffix} >= 3:1.3.0-5 - -%rhel_rhev_conflicts libcacard-tools - -%description -n libcacard-tools%{?pkgsuffix} -CAC emulation tools. - -%package -n libcacard-devel%{?pkgsuffix} -Summary: CAC Emulation devel -Group: Development/Libraries -Requires: libcacard%{?pkgsuffix} = %{epoch}:%{version}-%{release} - -%rhel_rhev_conflicts libcacard-devel - -%description -n libcacard-devel%{?pkgsuffix} -CAC emulation development files. -%endif - -%prep -%setup -q -n qemu-kvm-ev-%{version} - -# Copy bios files to allow 'make check' pass -cp %{SOURCE14} pc-bios -cp %{SOURCE15} pc-bios -cp %{SOURCE16} pc-bios -cp %{SOURCE17} pc-bios -cp %{SOURCE18} pc-bios -cp %{SOURCE20} pc-bios - -# if patch fuzzy patch applying will be forbidden -%define with_fuzzy_patches 0 -%if %{with_fuzzy_patches} - patch_command='patch -p1 -s' -%else - patch_command='patch -p1 -F1 -s' -%endif - -ApplyPatch() -{ - local patch=$1 - shift - if [ ! -f $RPM_SOURCE_DIR/$patch ]; then - exit 1 - fi - case "$patch" in - *.bz2) bunzip2 < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;; - *.gz) gunzip < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;; - *) $patch_command ${1+"$@"} < "$RPM_SOURCE_DIR/$patch" ;; - esac -} - -# don't apply patch if it's empty or does not exist -ApplyOptionalPatch() -{ - local patch=$1 - shift - if [ ! -f $RPM_SOURCE_DIR/$patch ]; then - return 0 - fi - local C=$(wc -l $RPM_SOURCE_DIR/$patch | awk '{print $1}') - if [ "$C" -gt 9 ]; then - ApplyPatch $patch ${1+"$@"} - fi -} - - -ApplyOptionalPatch qemu-kvm-test.patch - -# for tscdeadline_latency.flat -%ifarch x86_64 - tar -xf %{SOURCE25} -%endif - -%build -buildarch="%{kvm_target}-softmmu" - -# --build-id option is used for giving info to the debug packages. -extraldflags="-Wl,--build-id"; -buildldflags="VL_LDFLAGS=-Wl,--build-id" - -# QEMU already knows how to set _FORTIFY_SOURCE -%global optflags %(echo %{optflags} | sed 's/-Wp,-D_FORTIFY_SOURCE=2//') - -%ifarch s390 - # drop -g flag to prevent memory exhaustion by linker - %global optflags %(echo %{optflags} | sed 's/-g//') - sed -i.debug 's/"-g $CFLAGS"/"$CFLAGS"/g' configure -%endif - -tar xzf %{SOURCE29} -C ui - -cp %{SOURCE24} build_configure.sh - -./build_configure.sh \ - "%{_prefix}" \ - "%{_libdir}" \ - "%{_sysconfdir}" \ - "%{_localstatedir}" \ - "%{_libexecdir}" \ - "%{pkgname}" \ - "%{kvm_target}" \ - "%{name}-%{version}-%{release}" \ - "%{optflags}" \ -%if 0%{have_fdt} - enable \ -%else - disable \ -%endif -%if 0%{have_gluster} - enable \ -%else - disable \ -%endif - disable \ - enable \ -%ifarch x86_64 - enable \ -%else - disable \ -%endif - enable \ -%if 0%{have_seccomp} - enable \ -%else - disable \ -%endif -%if 0%{have_spice} - enable \ -%else - disable \ -%endif -%if 0%{have_usbredir} - enable \ -%else - disable \ -%endif -%if 0%{have_tcmalloc} - enable \ -%else - disable \ -%endif - --target-list="$buildarch" - -echo "config-host.mak contents:" -echo "===" -cat config-host.mak -echo "===" - -make V=1 %{?_smp_mflags} $buildldflags - -# WRS: Disable - we are not using traces -# Setup back compat qemu-kvm binary -# ./scripts/tracetool.py --backend dtrace --format stap \ -# --binary %{_libexecdir}/qemu-kvm --target-name %{kvm_target} \ -# --target-type system --probe-prefix \ -# qemu.kvm < ./trace-events > qemu-kvm.stp - -# ./scripts/tracetool.py --backend dtrace --format simpletrace-stap \ -# --binary %{_libexecdir}/qemu-kvm --target-name %{kvm_target} \ -# --target-type system --probe-prefix \ -# qemu.kvm < ./trace-events > qemu-kvm-simpletrace.stp - -cp -a %{kvm_target}-softmmu/qemu-system-%{kvm_target} qemu-kvm - - -# gcc %{SOURCE6} -O2 -g -o ksmctl - -# build tscdeadline_latency.flat -%ifarch x86_64 - (cd kvm-unit-tests && ./configure) - make -C kvm-unit-tests -%endif - -%install -%define _udevdir %(pkg-config --variable=udevdir udev)/rules.d - -# install -D -p -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_unitdir}/ksm.service -# install -D -p -m 0644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/ksm -# install -D -p -m 0755 ksmctl $RPM_BUILD_ROOT%{_libexecdir}/ksmctl - -# install -D -p -m 0644 %{SOURCE7} $RPM_BUILD_ROOT%{_unitdir}/ksmtuned.service -# install -D -p -m 0755 %{SOURCE8} $RPM_BUILD_ROOT%{_sbindir}/ksmtuned -# install -D -p -m 0644 %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/ksmtuned.conf -install -D -p -m 0644 %{SOURCE26} $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/vhost.conf -install -D -p -m 0644 %{SOURCE129} $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/qemu-system-x86.conf - -mkdir -p $RPM_BUILD_ROOT%{_bindir}/ -mkdir -p $RPM_BUILD_ROOT%{_udevdir} - -install -m 0644 %{SOURCE3} $RPM_BUILD_ROOT%{_udevdir} - -mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{pkgname} -install -m 0644 scripts/dump-guest-memory.py \ - $RPM_BUILD_ROOT%{_datadir}/%{pkgname} -%ifarch x86_64 - install -m 0644 kvm-unit-tests/x86/tscdeadline_latency.flat \ - $RPM_BUILD_ROOT%{_datadir}/%{pkgname} -%endif - -make DESTDIR=$RPM_BUILD_ROOT \ - sharedir="%{_datadir}/%{pkgname}" \ - datadir="%{_datadir}/%{pkgname}" \ - install - -mkdir -p $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset - -# Install compatibility roms -install %{SOURCE14} $RPM_BUILD_ROOT%{_datadir}/%{pkgname}/ -install %{SOURCE15} $RPM_BUILD_ROOT%{_datadir}/%{pkgname}/ -install %{SOURCE16} $RPM_BUILD_ROOT%{_datadir}/%{pkgname}/ -install %{SOURCE17} $RPM_BUILD_ROOT%{_datadir}/%{pkgname}/ -install %{SOURCE20} $RPM_BUILD_ROOT%{_datadir}/%{pkgname}/ - -install -m 0755 qemu-kvm $RPM_BUILD_ROOT%{_libexecdir}/ -# WRS: Disable traces -# install -m 0644 qemu-kvm.stp $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/ -# install -m 0644 qemu-kvm-simpletrace.stp $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/ - -# WRS: Add kvm softlink -ln -sf %{_libexecdir}/qemu-kvm $RPM_BUILD_ROOT/usr/bin/kvm - -rm $RPM_BUILD_ROOT%{_bindir}/qemu-system-%{kvm_target} -# WRS: Disable traces -# rm $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/qemu-system-%{kvm_target}.stp -# rm $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/qemu-system-%{kvm_target}-simpletrace.stp - -# Install simpletrace -# install -m 0755 scripts/simpletrace.py $RPM_BUILD_ROOT%{_datadir}/%{pkgname}/simpletrace.py -# mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{pkgname}/tracetool -# install -m 0644 -t $RPM_BUILD_ROOT%{_datadir}/%{pkgname}/tracetool scripts/tracetool/*.py -# mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{pkgname}/tracetool/backend -# install -m 0644 -t $RPM_BUILD_ROOT%{_datadir}/%{pkgname}/tracetool/backend scripts/tracetool/backend/*.py -# mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{pkgname}/tracetool/format -# install -m 0644 -t $RPM_BUILD_ROOT%{_datadir}/%{pkgname}/tracetool/format scripts/tracetool/format/*.py - -mkdir -p $RPM_BUILD_ROOT%{qemudocdir} -install -p -m 0644 -t ${RPM_BUILD_ROOT}%{qemudocdir} Changelog README COPYING COPYING.LIB LICENSE %{SOURCE19} docs/interop/qmp-spec.txt -mv ${RPM_BUILD_ROOT}%{_docdir}/qemu/qemu-doc.html $RPM_BUILD_ROOT%{qemudocdir} -mv ${RPM_BUILD_ROOT}%{_docdir}/qemu/qemu-doc.txt $RPM_BUILD_ROOT%{qemudocdir} -mv ${RPM_BUILD_ROOT}%{_docdir}/qemu/qemu-qmp-ref.html $RPM_BUILD_ROOT%{qemudocdir} -mv ${RPM_BUILD_ROOT}%{_docdir}/qemu/qemu-qmp-ref.txt $RPM_BUILD_ROOT%{qemudocdir} -chmod -x ${RPM_BUILD_ROOT}%{_mandir}/man1/* -chmod -x ${RPM_BUILD_ROOT}%{_mandir}/man8/* - -install -D -p -m 0644 qemu.sasl $RPM_BUILD_ROOT%{_sysconfdir}/sasl2/%{pkgname}.conf - -# Provided by package openbios -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/openbios-ppc -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/openbios-sparc32 -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/openbios-sparc64 -# Provided by package SLOF -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/slof.bin - -# Remove unpackaged files. -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/palcode-clipper -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/petalogix*.dtb -rm -f ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/bamboo.dtb -rm -f ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/ppc_rom.bin -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/s390-zipl.rom -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/s390-ccw.img -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/s390-netboot.img -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/u-boot.e500 -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/canyonlands.dtb -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/hppa-firmware.img -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/u-boot-sam460-20100605.bin - -%ifnarch %{power64} - rm -f ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/spapr-rtas.bin - rm -f ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/skiboot.lid - rm -f ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/qemu_vga.ndrv -%endif - -%ifnarch x86_64 - rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/acpi-dsdt.aml - rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/kvmvapic.bin - rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/linuxboot.bin - rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/multiboot.bin -%endif - -# Remove sparc files -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/QEMU,tcx.bin -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/QEMU,cgthree.bin - -# Remove efi roms -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/efi*.rom - -# Remove ivshmem example programs -rm -rf ${RPM_BUILD_ROOT}%{_bindir}/ivshmem-client -rm -rf ${RPM_BUILD_ROOT}%{_bindir}/ivshmem-server - -# Provided by package ipxe -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/pxe*rom -# Provided by package vgabios -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/vgabios*bin -# Provided by package seabios -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/bios*.bin -# Provided by package sgabios -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/sgabios.bin - -# Remove tracing stuff -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{pkgname}/trace-events-all - -# the pxe gpxe images will be symlinks to the images on -# /usr/share/ipxe, as QEMU doesn't know how to look -# for other paths, yet. -pxe_link() { - ln -s ../ipxe/$2.rom %{buildroot}%{_datadir}/%{pkgname}/pxe-$1.rom -} - -%ifnarch aarch64 -pxe_link e1000 8086100e -pxe_link ne2k_pci 10ec8029 -pxe_link pcnet 10222000 -pxe_link rtl8139 10ec8139 -pxe_link virtio 1af41000 -pxe_link e1000e 808610d3 -%endif - -rom_link() { - ln -s $1 %{buildroot}%{_datadir}/%{pkgname}/$2 -} - -%ifnarch aarch64 - rom_link ../seavgabios/vgabios-isavga.bin vgabios.bin - rom_link ../seavgabios/vgabios-cirrus.bin vgabios-cirrus.bin - rom_link ../seavgabios/vgabios-qxl.bin vgabios-qxl.bin - rom_link ../seavgabios/vgabios-stdvga.bin vgabios-stdvga.bin - rom_link ../seavgabios/vgabios-vmware.bin vgabios-vmware.bin - rom_link ../seavgabios/vgabios-virtio.bin vgabios-virtio.bin -%endif -%ifarch x86_64 - rom_link ../seabios/bios.bin bios.bin - rom_link ../seabios/bios-256k.bin bios-256k.bin - rom_link ../sgabios/sgabios.bin sgabios.bin -%endif - -%if 0%{have_kvm_setup} - install -D -p -m 755 %{SOURCE21} $RPM_BUILD_ROOT%{_prefix}/lib/systemd/kvm-setup - install -D -p -m 644 %{SOURCE22} $RPM_BUILD_ROOT%{_unitdir}/kvm-setup.service - install -D -p -m 644 %{SOURCE23} $RPM_BUILD_ROOT%{_presetdir}/85-kvm.preset -%endif - -%if 0%{have_memlock_limits} - install -D -p -m 644 %{SOURCE28} $RPM_BUILD_ROOT%{_sysconfdir}/security/limits.d/95-kvm-memlock.conf -%endif - -# Install rules to use the bridge helper with libvirt's virbr0 -install -D -m 0644 %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/%{pkgname}/bridge.conf - -%if 0 -make %{?_smp_mflags} $buildldflags DESTDIR=$RPM_BUILD_ROOT install-libcacard - -find $RPM_BUILD_ROOT -name "libcacard.so*" -exec chmod +x \{\} \; -%endif - -find $RPM_BUILD_ROOT -name '*.la' -or -name '*.a' | xargs rm -f - -# WRS -install -d %{buildroot}/etc/init.d -install -m 700 %{SOURCE127} %{buildroot}/etc/init.d/qemu_clean -install -d %{buildroot}/etc/systemd/system/ -install -m 664 %{SOURCE128} %{buildroot}/etc/systemd/system/qemu_clean.service - -%check -# WRS: Disable unit tests -# make check V=1 - -%post -# load kvm modules now, so we can make sure no reboot is needed. -# If there's already a kvm module installed, we don't mess with it -%udev_rules_update -sh %{_sysconfdir}/sysconfig/modules/kvm.modules &> /dev/null || : - udevadm trigger --subsystem-match=misc --sysname-match=kvm --action=add || : -%if %{have_kvm_setup} - systemctl daemon-reload # Make sure it sees the new presets and unitfile - %systemd_post kvm-setup.service - if systemctl is-enabled kvm-setup.service > /dev/null; then - systemctl start kvm-setup.service - fi -%endif - -%post -n qemu-kvm-common%{?pkgsuffix} -# %systemd_post ksm.service -# %systemd_post ksmtuned.service - -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 - -# WRS -if [ $1 -eq 1 ] ; then - ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-system-x86_64 -fi -exit 0 - -%systemd_post qemu_clean.service - -%preun -n qemu-kvm-common%{?pkgsuffix} -# %systemd_preun ksm.service -# %systemd_preun ksmtuned.service - -# WRS -%systemd_preun qemu_clean.service - -%postun -n qemu-kvm-common%{?pkgsuffix} -# %systemd_postun_with_restart ksm.service -# %systemd_postun_with_restart ksmtuned.service - -# WRS -%systemd_postun_with_restart qemu_clean.service - -%global kvm_files \ -%{_udevdir}/80-kvm.rules - -%global qemu_kvm_files \ -%{_libexecdir}/qemu-kvm - -%files -n qemu-kvm-common%{?pkgsuffix} -%defattr(-,root,root) -%dir %{qemudocdir} -%doc %{qemudocdir}/Changelog -%doc %{qemudocdir}/README -%doc %{qemudocdir}/qemu-doc.html -%doc %{qemudocdir}/qemu-doc.txt -%doc %{qemudocdir}/COPYING -%doc %{qemudocdir}/COPYING.LIB -%doc %{qemudocdir}/LICENSE -%doc %{qemudocdir}/README.rhel6-gpxe-source -%doc %{qemudocdir}/qmp-spec.txt -%doc %{qemudocdir}/qemu-qmp-ref.html -%doc %{qemudocdir}/qemu-qmp-ref.txt - -%dir %{_datadir}/%{pkgname}/ -%{_datadir}/%{pkgname}/keymaps/ -%{_mandir}/man1/qemu.1* -%{_mandir}/man7/qemu-qmp-ref* -%attr(4755, -, -) %{_libexecdir}/qemu-bridge-helper -%config(noreplace) %{_sysconfdir}/sasl2/%{pkgname}.conf -# %{_unitdir}/ksm.service -# %{_libexecdir}/ksmctl -# %config(noreplace) %{_sysconfdir}/sysconfig/ksm -# %{_unitdir}/ksmtuned.service -# %{_sbindir}/ksmtuned -# %config(noreplace) %{_sysconfdir}/ksmtuned.conf -%dir %{_sysconfdir}/%{pkgname} -%config(noreplace) %{_sysconfdir}/%{pkgname}/bridge.conf -%config(noreplace) %{_sysconfdir}/modprobe.d/vhost.conf -%{_sysconfdir}/modprobe.d/qemu-system-x86.conf -# WRS: Disable traces -# %{_datadir}/%{pkgname}/simpletrace.py* -# %{_datadir}/%{pkgname}/tracetool/*.py* -# %{_datadir}/%{pkgname}/tracetool/backend/*.py* -# %{_datadir}/%{pkgname}/tracetool/format/*.py* - -%files -%defattr(-,root,root) -%ifarch x86_64 -# %{_datadir}/%{pkgname}/acpi-dsdt.aml - %{_datadir}/%{pkgname}/bios.bin - %{_datadir}/%{pkgname}/bios-256k.bin - %{_datadir}/%{pkgname}/linuxboot.bin - %{_datadir}/%{pkgname}/linuxboot_dma.bin - %{_datadir}/%{pkgname}/multiboot.bin - %{_datadir}/%{pkgname}/kvmvapic.bin - %{_datadir}/%{pkgname}/sgabios.bin -%endif -%ifnarch aarch64 - %{_datadir}/%{pkgname}/vgabios.bin - %{_datadir}/%{pkgname}/vgabios-cirrus.bin - %{_datadir}/%{pkgname}/vgabios-qxl.bin - %{_datadir}/%{pkgname}/vgabios-stdvga.bin - %{_datadir}/%{pkgname}/vgabios-vmware.bin - %{_datadir}/%{pkgname}/vgabios-virtio.bin - %{_datadir}/%{pkgname}/pxe-e1000.rom - %{_datadir}/%{pkgname}/pxe-e1000e.rom - %{_datadir}/%{pkgname}/pxe-virtio.rom - %{_datadir}/%{pkgname}/pxe-pcnet.rom - %{_datadir}/%{pkgname}/pxe-rtl8139.rom - %{_datadir}/%{pkgname}/pxe-ne2k_pci.rom -%endif -%{_datadir}/%{pkgname}/qemu-icon.bmp -%{_datadir}/%{pkgname}/qemu_logo_no_text.svg -%{_datadir}/%{pkgname}/rhel6-virtio.rom -%{_datadir}/%{pkgname}/rhel6-pcnet.rom -%{_datadir}/%{pkgname}/rhel6-rtl8139.rom -%{_datadir}/%{pkgname}/rhel6-ne2k_pci.rom -%{_datadir}/%{pkgname}/rhel6-e1000.rom -%{_datadir}/%{pkgname}/dump-guest-memory.py* -%ifarch %{power64} - %{_datadir}/%{pkgname}/spapr-rtas.bin -%endif -%{?kvm_files:} -%{?qemu_kvm_files:} -%if %{have_kvm_setup} - %{_prefix}/lib/systemd/kvm-setup - %{_unitdir}/kvm-setup.service - %{_presetdir}/85-kvm.preset -%endif -%if 0%{have_memlock_limits} - %{_sysconfdir}/security/limits.d/95-kvm-memlock.conf -%endif - -# WRS -/etc/init.d/qemu_clean -/etc/systemd/system/qemu_clean.service -/usr/bin/virtfs-proxy-helper -/usr/bin/kvm - -%files -n qemu-kvm-tools%{?pkgsuffix} -%defattr(-,root,root,-) -%ifarch x86_64 -%{_datadir}/%{pkgname}/tscdeadline_latency.flat -%endif - -%files -n qemu-img%{?pkgsuffix} -%defattr(-,root,root) -%{_bindir}/qemu-img -%{_bindir}/qemu-io -%{_bindir}/qemu-nbd -%{_bindir}/qemu-pr-helper -%{_mandir}/man1/qemu-img.1* -%{_mandir}/man7/qemu-block-drivers.7* -%{_mandir}/man8/qemu-nbd.8* -# WRS: virtfs -%{_mandir}/man1/virtfs-proxy-helper.1* - -%if 0 -%files -n libcacard%{?pkgsuffix} -%defattr(-,root,root,-) -%{_libdir}/libcacard.so.* - -%files -n libcacard-tools%{?pkgsuffix} -%defattr(-,root,root,-) -%{_bindir}/vscclient - -%files -n libcacard-devel%{?pkgsuffix} -%defattr(-,root,root,-) -%{_includedir}/cacard -%{_libdir}/libcacard.so -%{_libdir}/pkgconfig/libcacard.pc -%endif - -%changelog -* Thu Apr 20 2017 Sandro Bonazzola - ev-2.6.0-28.el7_3.9.1 -- Removing RH branding from package name - -* Fri Mar 24 2017 Miroslav Rezanina - rhev-2.6.0-28.el7_3.9 -- kvm-block-gluster-memory-usage-use-one-glfs-instance-per.patch [bz#1413044] -- kvm-gluster-Fix-use-after-free-in-glfs_clear_preopened.patch [bz#1413044] -- kvm-fix-cirrus_vga-fix-OOB-read-case-qemu-Segmentation-f.patch [bz#1430061] -- kvm-cirrus-vnc-zap-bitblit-support-from-console-code.patch [bz#1430061] -- kvm-cirrus-add-option-to-disable-blitter.patch [bz#1430061] -- kvm-cirrus-fix-cirrus_invalidate_region.patch [bz#1430061] -- kvm-cirrus-stop-passing-around-dst-pointers-in-the-blitt.patch [bz#1430061] -- kvm-cirrus-stop-passing-around-src-pointers-in-the-blitt.patch [bz#1430061] -- kvm-cirrus-fix-off-by-one-in-cirrus_bitblt_rop_bkwd_tran.patch [bz#1430061] -- kvm-file-posix-Consider-max_segments-for-BlockLimits.max.patch [bz#1431149] -- kvm-file-posix-clean-up-max_segments-buffer-termination.patch [bz#1431149] -- kvm-file-posix-Don-t-leak-fd-in-hdev_get_max_segments.patch [bz#1431149] -- Resolves: bz#1413044 - (block-gluster: use one glfs instance per volume) -- Resolves: bz#1430061 - (CVE-2016-9603 qemu-kvm-rhev: Qemu: cirrus: heap buffer overflow via vnc connection [rhel-7.3.z]) -- Resolves: bz#1431149 - (VMs pause when writing to Virtio-SCSI direct lun with scsi passthrough enabled via an Emulex HBA) - -* Tue Mar 21 2017 Miroslav Rezanina - rhev-2.6.0-28.el7_3.8 -- kvm-target-i386-present-virtual-L3-cache-info-for-vcpus.patch [bz#1430802] -- Resolves: bz#1430802 - (Enhance qemu to present virtual L3 cache info for vcpus) - -* Wed Mar 15 2017 Miroslav Rezanina - rhev-2.6.0-28.el7_3.7 -- kvm-block-check-full-backing-filename-when-searching-pro.patch [bz#1425125] -- kvm-qemu-iotests-Don-t-create-fifos-pidfiles-with-protoc.patch [bz#1425125] -- kvm-qemu-iotest-test-to-lookup-protocol-based-image-with.patch [bz#1425125] -- kvm-target-i386-Don-t-use-cpu-migratable-when-filtering-.patch [bz#1413897] -- Resolves: bz#1413897 - (cpu flag nonstop_tsc is not present in guest with host-passthrough and feature policy require invtsc) -- Resolves: bz#1425125 - (qemu fails to recognize gluster URIs in backing chain for block-commit operation) - -* Mon Feb 13 2017 Miroslav Rezanina - rhev-2.6.0-28.el7_3.6 -- kvm-cirrus-fix-patterncopy-checks.patch [bz#1420493] -- kvm-Revert-cirrus-allow-zero-source-pitch-in-pattern-fil.patch [bz#1420493] -- kvm-cirrus-add-blit_is_unsafe-call-to-cirrus_bitblt_cput.patch [bz#1420493] -- Resolves: bz#1420493 - (EMBARGOED CVE-2017-2620 qemu-kvm-rhev: Qemu: display: cirrus: potential arbitrary code execution via cirrus_bitblt_cputovideo [rhel-7.3.z]) - -* Fri Feb 10 2017 Miroslav Rezanina - rhev-2.6.0-28.el7_3.5 -- kvm-memory-Provide-memory_region_init_rom.patch [bz#1420456] -- kvm-pci-mark-ROMs-read-only.patch [bz#1420456] -- kvm-vhost-skip-ROM-sections.patch [bz#1420456] -- kvm-display-cirrus-check-vga-bits-per-pixel-bpp-value.patch [bz#1418234] -- kvm-display-cirrus-ignore-source-pitch-value-as-needed-i.patch [bz#1418234] -- kvm-cirrus-handle-negative-pitch-in-cirrus_invalidate_re.patch [bz#1418234] -- kvm-cirrus-allow-zero-source-pitch-in-pattern-fill-rops.patch [bz#1418234] -- kvm-cirrus-fix-blit-address-mask-handling.patch [bz#1418234] -- kvm-cirrus-fix-oob-access-issue-CVE-2017-2615.patch [bz#1418234] -- Resolves: bz#1418234 - (CVE-2017-2615 qemu-kvm-rhev: Qemu: display: cirrus: oob access while doing bitblt copy backward mode [rhel-7.3.z]) -- Resolves: bz#1420456 - ([ppc64le]reset vm when do migration, HMP in src host promp "tcmalloc: large alloc 1073872896 bytes...") - -* Wed Feb 08 2017 Miroslav Rezanina - rhev-2.6.0-28.el7_3.4 -- kvm-Disable-usbredir-and-libcacard-for-unsupported-archi.patch [bz#1420428] -- Resolves: bz#1420428 - (Remove dependencies required by spice on ppc64le) - -* Wed Jan 04 2017 Miroslav Rezanina - rhev-2.6.0-28.el7_3.3 -- kvm-pc_piix-fix-compat-props-typo-for-RHEL6-machine-type.patch [bz#1408122] -- kvm-net-don-t-poke-at-chardev-internal-QemuOpts.patch [bz#1410200] -- Resolves: bz#1408122 - (Opteron_G4 CPU model broken in QEMU 2.6 with RHEL 6 machine type) -- Resolves: bz#1410200 - (qemu gets SIGSEGV when hot-plug a vhostuser network) - -* Fri Dec 09 2016 Miroslav Rezanina - rhev-2.6.0-28.el7_3.2 -- kvm-numa-do-not-leak-NumaOptions.patch [bz#1397745] -- kvm-char-free-the-tcp-connection-data-when-closing.patch [bz#1397745] -- kvm-char-free-MuxDriver-when-closing.patch [bz#1397745] -- kvm-ahci-free-irqs-array.patch [bz#1397745] -- kvm-virtio-input-free-config-list.patch [bz#1397745] -- kvm-usb-free-USBDevice.strings.patch [bz#1397745] -- kvm-usb-free-leaking-path.patch [bz#1397745] -- kvm-ahci-fix-sglist-leak-on-retry.patch [bz#1397745] -- kvm-virtio-add-virtqueue_rewind.patch [bz#1402509] -- kvm-virtio-balloon-fix-stats-vq-migration.patch [bz#1402509] -- kvm-virtio-blk-Release-s-rq-queue-at-system_reset.patch [bz#1393041] -- kvm-virtio-blk-Remove-stale-comment-about-draining.patch [bz#1393041] -- Resolves: bz#1393041 - (system_reset should clear pending request for error (virtio-blk)) -- Resolves: bz#1397745 - (Backport memory leak fixes from QEMU 2.7) -- Resolves: bz#1402509 - (virtio-balloon stats virtqueue does not migrate properly) - -* Wed Nov 30 2016 Miroslav Rezanina - rhev-2.6.0-28.el7_3.1 -- kvm-ide-fix-halted-IO-segfault-at-reset.patch [bz#1393043] -- kvm-atapi-fix-halted-DMA-reset.patch [bz#1393043] -- kvm-ahci-clear-aiocb-in-ncq_cb.patch [bz#1393736] -- kvm-Workaround-rhel6-ctrl_guest_offloads-machine-type-mi.patch [bz#1392876] -- kvm-Postcopy-vs-xbzrle-Don-t-send-xbzrle-pages-once-in-p.patch [bz#1395360] -- kvm-ui-fix-refresh-of-VNC-server-surface.patch [bz#1392881] -- Resolves: bz#1392876 - (windows guests migration from rhel6.8-z to rhel7.3 with virtio-net-pci fail) -- Resolves: bz#1392881 - (Graphic can't be showed out quickly if guest graphic mode is vnc) -- Resolves: bz#1393043 - (system_reset should clear pending request for error (IDE)) -- Resolves: bz#1393736 - (qemu core dump when there is an I/O error on AHCI) -- Resolves: bz#1395360 - (Post-copy migration fails with XBZRLE compression) - -* Tue Sep 27 2016 Miroslav Rezanina - rhev-2.6.0-28.el7 -- kvm-ARM-ACPI-fix-the-AML-ID-format-for-CPU-devices.patch [bz#1373733] -- Resolves: bz#1373733 - (failed to run a guest VM with >= 12 vcpu under ACPI mode) - -* Fri Sep 23 2016 Miroslav Rezanina - rhev-2.6.0-27.el7 -- kvm-char-fix-waiting-for-TLS-and-telnet-connection.patch [bz#1300773] -- kvm-target-i386-introduce-kvm_put_one_msr.patch [bz#1377920] -- kvm-apic-set-APIC-base-as-part-of-kvm_apic_put.patch [bz#1377920] -- Resolves: bz#1300773 - (RFE: add support for native TLS encryption on chardev TCP transports) -- Resolves: bz#1377920 - (Guest fails reboot and causes kernel-panic) - -* Tue Sep 20 2016 Miroslav Rezanina - rhev-2.6.0-26.el7 -- kvm-target-i386-Add-more-Intel-AVX-512-instructions-supp.patch [bz#1372455] -- kvm-iothread-Stop-threads-before-main-quits.patch [bz#1343021] -- kvm-virtio-pci-error-out-when-both-legacy-and-modern-mod.patch [bz#1370005] -- kvm-virtio-bus-Plug-devices-after-features-are-negotiate.patch [bz#1370005] -- kvm-virtio-pci-reduce-modern_mem_bar-size.patch [bz#1365613] -- kvm-virtio-vga-adapt-to-page-per-vq-off.patch [bz#1365613] -- kvm-virtio-gpu-pci-tag-as-not-hotpluggable.patch [bz#1368032] -- kvm-scsi-disk-Cleaning-up-around-tray-open-state.patch [bz#1374251] -- kvm-virtio-scsi-Don-t-abort-when-media-is-ejected.patch [bz#1374251] -- kvm-io-remove-mistaken-call-to-object_ref-on-QTask.patch [bz#1375677] -- kvm-block-Invalidate-all-children.patch [bz#1355927] -- kvm-block-Drop-superfluous-invalidating-bs-file-from-dri.patch [bz#1355927] -- kvm-block-Inactivate-all-children.patch [bz#1355927] -- kvm-vfio-pci-Fix-regression-in-MSI-routing-configuration.patch [bz#1373802] -- kvm-x86-lapic-Load-LAPIC-state-at-post_load.patch [bz#1363998] -- kvm-blockdev-ignore-cache-options-for-empty-CDROM-drives.patch [bz#1342999] -- kvm-block-reintroduce-bdrv_flush_all.patch [bz#1338638] -- kvm-qemu-use-bdrv_flush_all-for-vm_stop-et-al.patch [bz#1338638] -- Resolves: bz#1338638 - (Migration fails after ejecting the cdrom in the guest) -- Resolves: bz#1342999 - ('cache=x' cannot work with empty cdrom) -- Resolves: bz#1343021 - (Core dump when quit from HMP after migration finished) -- Resolves: bz#1355927 - (qemu SIGABRT when doing inactive blockcommit with external system checkpoint snapshot) -- Resolves: bz#1363998 - (Live migration via a compressed file causes the guest desktop to freeze) -- Resolves: bz#1365613 - ([PCI] The default MMIO range reserved by firmware for PCI bridges is not enough to hotplug virtio-1 devices) -- Resolves: bz#1368032 - (kernel crash after hot remove virtio-gpu device) -- Resolves: bz#1370005 - (Fail to get network device info(eth0) in guest with virtio-net-pci/vhostforce) -- Resolves: bz#1372455 - ([Intel 7.3 Bug] SKL-SP Guest cpu doesn't support avx512 instruction sets(avx512bw, avx512dq and avx512vl)(qemu-kvm-rhev)) -- Resolves: bz#1373802 - (Network can't recover when trigger EEH one time) -- Resolves: bz#1374251 - (qemu-kvm-rhev core dumped when enabling virtio-scsi "data plane" and executing "eject") -- Resolves: bz#1375677 - (Crash when performing VNC websockets handshake) - -* Tue Sep 13 2016 Miroslav Rezanina - rhev-2.6.0-25.el7 -- kvm-virtio-recalculate-vq-inuse-after-migration.patch [bz#1372763] -- kvm-virtio-decrement-vq-inuse-in-virtqueue_discard.patch [bz#1372763] -- kvm-virtio-balloon-discard-virtqueue-element-on-reset.patch [bz#1370703] -- kvm-virtio-zero-vq-inuse-in-virtio_reset.patch [bz#1370703 bz#1374623] -- Resolves: bz#1370703 - ([Balloon] Whql Job "Commom scenario stress with IO" failed on 2008-32/64) -- Resolves: bz#1372763 - (RHSA-2016-1756 breaks migration of instances) -- Resolves: bz#1374623 - (RHSA-2016-1756 breaks migration of instances) - -* Fri Sep 09 2016 Miroslav Rezanina - rhev-2.6.0-24.el7 -- kvm-Fix-configure-test-for-PBKDF2-in-nettle.patch [bz#1301019] -- kvm-redhat-switch-from-gcrypt-to-nettle-for-crypto.patch [bz#1301019] -- kvm-crypto-assert-that-qcrypto_hash_digest_len-is-in-ran.patch [bz#1301019] -- kvm-crypto-fix-handling-of-iv-generator-hash-defaults.patch [bz#1301019] -- kvm-crypto-ensure-XTS-is-only-used-with-ciphers-with-16-.patch [bz#1301019] -- kvm-vhost-user-test-Use-libqos-instead-of-pxe-virtio.rom.patch [bz#1371211] -- kvm-vl-Delay-initialization-of-memory-backends.patch [bz#1371211] -- kvm-spapr-implement-H_CHANGE_LOGICAL_LAN_MAC-h_call.patch [bz#1371419] -- Resolves: bz#1301019 - (RFE: add support for LUKS disk encryption format driver w/ RBD, iSCSI, and qcow2) -- Resolves: bz#1371211 - (Qemu 2.6 won't boot guest with 2 meg hugepages) -- Resolves: bz#1371419 - ([ppc64le] Can't modify mac address for spapr-vlan device in rhel6.8 guest) - -* Tue Sep 06 2016 Miroslav Rezanina - rhev-2.6.0-23.el7 -- kvm-vhost-user-disconnect-on-HUP.patch [bz#1355902] -- kvm-vhost-don-t-assume-opaque-is-a-fd-use-backend-cleanu.patch [bz#1355902] -- kvm-vhost-make-vhost_log_put-idempotent.patch [bz#1355902] -- kvm-vhost-assert-the-log-was-cleaned-up.patch [bz#1355902] -- kvm-vhost-fix-cleanup-on-not-fully-initialized-device.patch [bz#1355902] -- kvm-vhost-make-vhost_dev_cleanup-idempotent.patch [bz#1355902] -- kvm-vhost-net-always-call-vhost_dev_cleanup-on-failure.patch [bz#1355902] -- kvm-vhost-fix-calling-vhost_dev_cleanup-after-vhost_dev_.patch [bz#1355902] -- kvm-vhost-do-not-assert-on-vhost_ops-failure.patch [bz#1355902] -- kvm-vhost-add-missing-VHOST_OPS_DEBUG.patch [bz#1355902] -- kvm-vhost-use-error_report-instead-of-fprintf-stderr.patch [bz#1355902] -- kvm-qemu-char-fix-qemu_chr_fe_set_msgfds-crash-when-disc.patch [bz#1355902] -- kvm-vhost-user-call-set_msgfds-unconditionally.patch [bz#1355902] -- kvm-vhost-user-check-qemu_chr_fe_set_msgfds-return-value.patch [bz#1355902] -- kvm-vhost-user-check-vhost_user_-read-write-return-value.patch [bz#1355902] -- kvm-vhost-user-keep-vhost_net-after-a-disconnection.patch [bz#1355902] -- kvm-vhost-user-add-get_vhost_net-assertions.patch [bz#1355902] -- kvm-Revert-vhost-net-do-not-crash-if-backend-is-not-pres.patch [bz#1355902] -- kvm-vhost-net-vhost_migration_done-is-vhost-user-specifi.patch [bz#1355902] -- kvm-vhost-add-assert-to-check-runtime-behaviour.patch [bz#1355902] -- kvm-char-add-chr_wait_connected-callback.patch [bz#1355902] -- kvm-char-add-and-use-tcp_chr_wait_connected.patch [bz#1355902] -- kvm-vhost-user-wait-until-backend-init-is-completed.patch [bz#1355902] -- kvm-vhost-user-add-error-report-in-vhost_user_write.patch [bz#1355902] -- kvm-vhost-add-vhost_net_set_backend.patch [bz#1355902] -- kvm-vhost-do-not-update-last-avail-idx-on-get_vring_base.patch [bz#1355902] -- kvm-vhost-check-for-vhost_ops-before-using.patch [bz#1355902] -- kvm-vhost-user-Introduce-a-new-protocol-feature-REPLY_AC.patch [bz#1355902] -- kvm-linux-aio-Handle-io_submit-failure-gracefully.patch [bz#1285928] -- kvm-Revert-acpi-pc-add-fw_cfg-device-node-to-dsdt.patch [bz#1368153] -- Resolves: bz#1285928 - (linux-aio aborts on io_submit() failure) -- Resolves: bz#1355902 - (vhost-user reconnect misc fixes and improvements) -- Resolves: bz#1368153 - (Please hide fw_cfg device in windows guest in order to make svvp test pass) - -* Mon Aug 22 2016 Miroslav Rezanina - rhev-2.6.0-22.el7 -- kvm-target-i386-kvm-Report-kvm_pv_unhalt-as-unsupported-.patch [bz#1363679] -- kvm-ioapic-keep-RO-bits-for-IOAPIC-entry.patch [bz#1358653] -- kvm-ioapic-clear-remote-irr-bit-for-edge-triggered-inter.patch [bz#1358653] -- kvm-x86-iommu-introduce-parent-class.patch [bz#1358653] -- kvm-intel_iommu-rename-VTD_PCI_DEVFN_MAX-to-x86-iommu.patch [bz#1358653] -- kvm-x86-iommu-provide-x86_iommu_get_default.patch [bz#1358653] -- kvm-x86-iommu-introduce-intremap-property.patch [bz#1358653] -- kvm-acpi-enable-INTR-for-DMAR-report-structure.patch [bz#1358653] -- kvm-intel_iommu-allow-queued-invalidation-for-IR.patch [bz#1358653] -- kvm-intel_iommu-set-IR-bit-for-ECAP-register.patch [bz#1358653] -- kvm-acpi-add-DMAR-scope-definition-for-root-IOAPIC.patch [bz#1358653] -- kvm-intel_iommu-define-interrupt-remap-table-addr-regist.patch [bz#1358653] -- kvm-intel_iommu-handle-interrupt-remap-enable.patch [bz#1358653] -- kvm-intel_iommu-define-several-structs-for-IOMMU-IR.patch [bz#1358653] -- kvm-intel_iommu-add-IR-translation-faults-defines.patch [bz#1358653] -- kvm-intel_iommu-Add-support-for-PCI-MSI-remap.patch [bz#1358653] -- kvm-intel_iommu-get-rid-of-0-initializers.patch [bz#1358653] -- kvm-q35-ioapic-add-support-for-emulated-IOAPIC-IR.patch [bz#1358653] -- kvm-ioapic-introduce-ioapic_entry_parse-helper.patch [bz#1358653] -- kvm-intel_iommu-add-support-for-split-irqchip.patch [bz#1358653] -- kvm-x86-iommu-introduce-IEC-notifiers.patch [bz#1358653] -- kvm-ioapic-register-IOMMU-IEC-notifier-for-ioapic.patch [bz#1358653] -- kvm-intel_iommu-Add-support-for-Extended-Interrupt-Mode.patch [bz#1358653] -- kvm-intel_iommu-add-SID-validation-for-IR.patch [bz#1358653] -- kvm-irqchip-simplify-kvm_irqchip_add_msi_route.patch [bz#1358653] -- kvm-irqchip-i386-add-hook-for-add-remove-virq.patch [bz#1358653] -- kvm-irqchip-x86-add-msi-route-notify-fn.patch [bz#1358653] -- kvm-irqchip-do-explicit-commit-when-update-irq.patch [bz#1358653] -- kvm-intel_iommu-support-all-masks-in-interrupt-entry-cac.patch [bz#1358653] -- kvm-all-add-trace-events-for-kvm-irqchip-ops.patch [bz#1358653] -- kvm-intel_iommu-disallow-kernel-irqchip-on-with-IR.patch [bz#1358653] -- kvm-intel_iommu-avoid-unnamed-fields.patch [bz#1358653] -- kvm-irqchip-only-commit-route-when-irqchip-is-used.patch [bz#1358653] -- kvm-x86-ioapic-ignore-level-irq-during-processing.patch [bz#1358653] -- kvm-x86-ioapic-add-support-for-explicit-EOI.patch [bz#1358653] -- kvm-memory-Fix-IOMMU-replay-base-address.patch [bz#1364035] -- kvm-Add-luks-to-block-driver-whitelist.patch [bz#1301019] -- Resolves: bz#1301019 - (RFE: add support for LUKS disk encryption format driver w/ RBD, iSCSI, and qcow2) -- Resolves: bz#1358653 - ([RFE] Interrupt remapping support for Intel vIOMMUs) -- Resolves: bz#1363679 - (RHEL guest hangs with kernel-irqchip=off and smp>1) -- Resolves: bz#1364035 - ([ppc64le][VFIO]Qemu complains:vfio_dma_map(0x10033d3a980, 0x1f34f0000, 0x10000, 0x3fff9a6d0000) = -6 (No such device or address)) - -* Tue Aug 16 2016 Miroslav Rezanina - rhev-2.6.0-21.el7 -- kvm-fix-qemu-exit-on-memory-hotplug-when-allocation-fail.patch [bz#1351409] -- kvm-spapr-remove-extra-type-variable.patch [bz#1363812] -- kvm-ppc-Introduce-a-function-to-look-up-CPU-alias-string.patch [bz#1363812] -- kvm-hw-ppc-spapr-Look-up-CPU-alias-names-instead-of-hard.patch [bz#1363812] -- kvm-ppc-kvm-Do-not-mess-up-the-generic-CPU-family-regist.patch [bz#1363812] -- kvm-ppc-kvm-Register-also-a-generic-spapr-CPU-core-famil.patch [bz#1363812] -- kvm-ppc64-fix-compressed-dump-with-pseries-kernel.patch [bz#1240497] -- kvm-monitor-fix-crash-when-leaving-qemu-with-spice-audio.patch [bz#1355704] -- kvm-audio-clean-up-before-monitor-clean-up.patch [bz#1355704] -- kvm-vnc-don-t-crash-getting-server-info-if-lsock-is-NULL.patch [bz#1359655] -- kvm-vnc-fix-crash-when-vnc_server_info_get-has-an-error.patch [bz#1359655] -- kvm-vnc-ensure-connection-sharing-limits-is-always-confi.patch [bz#1359655] -- kvm-vnc-make-sure-we-finish-disconnect.patch [bz#1352799] -- kvm-virtio-net-allow-increasing-rx-queue-size.patch [bz#1358962] -- kvm-input-add-trace-events-for-full-queues.patch [bz#1366471] -- kvm-virtio-set-low-features-early-on-load.patch [bz#1365747] -- kvm-Revert-virtio-net-unbreak-self-announcement-and-gues.patch [bz#1365747] -- Resolves: bz#1240497 - (qemu-kvm-rhev: dump-guest-memory creates invalid header with format kdump-{zlib,lzo,snappy} on ppc64) -- Resolves: bz#1351409 - (When hotplug memory, guest will shutdown as Insufficient free host memory pages available to allocate) -- Resolves: bz#1352799 - (Client information from hmp doesn't vanish after client disconnect when using vnc display) -- Resolves: bz#1355704 - (spice: core dump when 'quit') -- Resolves: bz#1358962 - (Increase the queue size to the max allowed, 1024.) -- Resolves: bz#1359655 - (Qemu crashes when connecting to a guest started with "-vnc none" by virt-viewer) -- Resolves: bz#1363812 - (qemu-kvm-rhev: -cpu POWER8 no longer works) -- Resolves: bz#1365747 - (Migrate guest(win10) after hot plug/unplug memory balloon device [Missing section footer for 0000:00:07.0/virtio-net]) -- Resolves: bz#1366471 - (QEMU prints "usb-kbd: warning: key event queue full" when pressing keys during SLOF boot) - -* Wed Aug 10 2016 Miroslav Rezanina - rhev-2.6.0-20.el7 -- kvm-block-gluster-rename-server-volname-image-host-volum.patch [bz#1247933] -- kvm-block-gluster-code-cleanup.patch [bz#1247933] -- kvm-block-gluster-deprecate-rdma-support.patch [bz#1247933] -- kvm-block-gluster-using-new-qapi-schema.patch [bz#1247933] -- kvm-block-gluster-add-support-for-multiple-gluster-serve.patch [bz#1247933] -- kvm-block-gluster-fix-doc-in-the-qapi-schema-and-member-.patch [bz#1247933] -- kvm-throttle-Don-t-allow-burst-limits-to-be-lower-than-t.patch [bz#1355665] -- kvm-throttle-Test-burst-limits-lower-than-the-normal-lim.patch [bz#1355665] -- kvm-spapr-Error-out-when-CPU-hotplug-is-attempted-on-old.patch [bz#1362019] -- kvm-spapr-Correctly-set-query_hotpluggable_cpus-hook-bas.patch [bz#1362019] -- Resolves: bz#1247933 - (RFE: qemu-kvm-rhev: support multiple volume hosts for gluster volumes) -- Resolves: bz#1355665 - (Suggest to limit the burst value to be not less than the throttle value) -- Resolves: bz#1362019 - (Crashes when using query-hotpluggable-cpus with pseries-rhel7.2.0 machine type) - -* Fri Aug 05 2016 Miroslav Rezanina - rhev-2.6.0-19.el7 -- kvm-hw-pcie-root-port-Fix-PCIe-root-port-initialization.patch [bz#1323976] -- kvm-hw-pxb-declare-pxb-devices-as-not-hot-pluggable.patch [bz#1323976] -- kvm-hw-acpi-fix-a-DSDT-table-issue-when-a-pxb-is-present.patch [bz#1323976] -- kvm-acpi-refactor-pxb-crs-computation.patch [bz#1323976] -- kvm-hw-apci-handle-64-bit-MMIO-regions-correctly.patch [bz#1323976] -- kvm-target-i386-Move-TCG-initialization-check-to-tcg_x86.patch [bz#1087672] -- kvm-target-i386-Move-TCG-initialization-to-realize-time.patch [bz#1087672] -- kvm-target-i386-Call-cpu_exec_init-on-realize.patch [bz#1087672] -- kvm-tests-acpi-report-names-of-expected-files-in-verbose.patch [bz#1087672] -- kvm-acpi-add-aml_debug.patch [bz#1087672] -- kvm-acpi-add-aml_refof.patch [bz#1087672] -- kvm-pc-acpi-remove-AML-for-empty-not-used-GPE-handlers.patch [bz#1087672] -- kvm-pc-acpi-consolidate-CPU-hotplug-AML.patch [bz#1087672] -- kvm-pc-acpi-consolidate-GPE._E02-with-the-rest-of-CPU-ho.patch [bz#1087672] -- kvm-pc-acpi-cpu-hotplug-make-AML-CPU_foo-defines-local-t.patch [bz#1087672] -- kvm-pc-acpi-mark-current-CPU-hotplug-functions-as-legacy.patch [bz#1087672] -- kvm-pc-acpi-consolidate-legacy-CPU-hotplug-in-one-file.patch [bz#1087672] -- kvm-pc-acpi-simplify-build_legacy_cpu_hotplug_aml-signat.patch [bz#1087672] -- kvm-pc-acpi-cpuhp-legacy-switch-ProcessorID-to-possible_.patch [bz#1087672] -- kvm-acpi-extend-ACPI-interface-to-provide-send_event-hoo.patch [bz#1087672] -- kvm-pc-use-AcpiDeviceIfClass.send_event-to-issue-GPE-eve.patch [bz#1087672] -- kvm-target-i386-Remove-xlevel-hv-spinlocks-option-fixups.patch [bz#1087672] -- kvm-target-i386-Move-features-logic-that-requires-CPUSta.patch [bz#1087672] -- kvm-target-i386-Remove-assert-kvm_enabled-from-host_x86_.patch [bz#1087672] -- kvm-target-i386-Move-xcc-kvm_required-check-to-realize-t.patch [bz#1087672] -- kvm-target-i386-Use-cpu_generic_init-in-cpu_x86_init.patch [bz#1087672] -- kvm-target-i386-Consolidate-calls-of-object_property_par.patch [bz#1087672] -- kvm-docs-update-ACPI-CPU-hotplug-spec-with-new-protocol.patch [bz#1087672] -- kvm-pc-piix4-ich9-add-cpu-hotplug-legacy-property.patch [bz#1087672] -- kvm-acpi-cpuhp-add-CPU-devices-AML-with-_STA-method.patch [bz#1087672] -- kvm-pc-acpi-introduce-AcpiDeviceIfClass.madt_cpu-hook.patch [bz#1087672] -- kvm-acpi-cpuhp-implement-hot-add-parts-of-CPU-hotplug-in.patch [bz#1087672] -- kvm-acpi-cpuhp-implement-hot-remove-parts-of-CPU-hotplug.patch [bz#1087672] -- kvm-acpi-cpuhp-add-cpu._OST-handling.patch [bz#1087672] -- kvm-pc-use-new-CPU-hotplug-interface-since-2.7-machine-t.patch [bz#1087672] -- kvm-pc-acpi-drop-intermediate-PCMachineState.node_cpu.patch [bz#1087672] -- kvm-qmp-fix-spapr-example-of-query-hotpluggable-cpus.patch [bz#1087672] -- kvm-qdev-Don-t-stop-applying-globals-on-first-error.patch [bz#1087672] -- kvm-qdev-Eliminate-qemu_add_globals-function.patch [bz#1087672] -- kvm-qdev-Use-GList-for-global-properties.patch [bz#1087672] -- kvm-qdev-GlobalProperty.errp-field.patch [bz#1087672] -- kvm-vl-Simplify-global-property-registration.patch [bz#1087672] -- kvm-machine-add-properties-to-compat_props-incrementaly.patch [bz#1087672] -- kvm-machine-Add-machine_register_compat_props-function.patch [bz#1087672] -- kvm-vl-Set-errp-to-error_abort-on-machine-compat_props.patch [bz#1087672] -- kvm-target-sparc-Use-sparc_cpu_parse_features-directly.patch [bz#1087672] -- kvm-target-i386-Avoid-using-locals-outside-their-scope.patch [bz#1087672] -- kvm-cpu-Use-CPUClass-parse_features-as-convertor-to-glob.patch [bz#1087672] -- kvm-arm-virt-Parse-cpu_model-only-once.patch [bz#1087672] -- kvm-cpu-make-cpu-qom.h-only-include-able-from-cpu.h.patch [bz#1087672] -- kvm-target-i386-make-cpu-qom.h-not-target-specific.patch [bz#1087672] -- kvm-target-Don-t-redefine-cpu_exec.patch [bz#1087672] -- kvm-pc-Parse-CPU-features-only-once.patch [bz#1087672] -- kvm-target-i386-Use-uint32_t-for-X86CPU.apic_id.patch [bz#1087672] -- kvm-pc-Add-x86_topo_ids_from_apicid.patch [bz#1087672] -- kvm-pc-Extract-CPU-lookup-into-a-separate-function.patch [bz#1087672] -- kvm-pc-cpu-Consolidate-apic-id-validity-checks-in-pc_cpu.patch [bz#1087672] -- kvm-target-i386-Replace-custom-apic-id-setter-getter-wit.patch [bz#1087672] -- kvm-target-i386-Add-socket-core-thread-properties-to-X86.patch [bz#1087672] -- kvm-target-i386-cpu-Do-not-ignore-error-and-fix-apic-par.patch [bz#1087672] -- kvm-target-i386-Fix-apic-object-leak-when-CPU-is-deleted.patch [bz#1087672] -- kvm-pc-Set-APIC-ID-based-on-socket-core-thread-ids-if-it.patch [bz#1087672] -- kvm-pc-Delay-setting-number-of-boot-CPUs-to-machine_done.patch [bz#1087672] -- kvm-pc-Register-created-initial-and-hotpluged-CPUs-in-on.patch [bz#1087672] -- kvm-pc-Forbid-BSP-removal.patch [bz#1087672] -- kvm-pc-Enforce-adding-CPUs-contiguously-and-removing-the.patch [bz#1087672] -- kvm-pc-cpu-Allow-device_add-to-be-used-with-x86-cpu.patch [bz#1087672] -- kvm-pc-Implement-query-hotpluggable-cpus-callback.patch [bz#1087672] -- kvm-apic-move-MAX_APICS-check-to-apic-class.patch [bz#1087672] -- kvm-apic-Drop-APICCommonState.idx-and-use-APIC-ID-as-ind.patch [bz#1087672] -- kvm-apic-kvm-apic-Fix-crash-due-to-access-to-freed-memor.patch [bz#1087672] -- kvm-apic-Add-unrealize-callbacks.patch [bz#1087672] -- kvm-apic-Use-apic_id-as-apic-s-migration-instance_id.patch [bz#1087672] -- kvm-target-i386-Add-x86_cpu_unrealizefn.patch [bz#1087672] -- kvm-pc-Make-device_del-CPU-work-for-x86-CPUs.patch [bz#1087672] -- kvm-exec-Reduce-CONFIG_USER_ONLY-ifdeffenery.patch [bz#1087672] -- kvm-exec-Don-t-use-cpu_index-to-detect-if-cpu_exec_init-.patch [bz#1087672] -- kvm-exec-Set-cpu_index-only-if-it-s-not-been-explictly-s.patch [bz#1087672] -- kvm-qdev-Fix-object-reference-leak-in-case-device.realiz.patch [bz#1087672] -- kvm-pc-Init-CPUState-cpu_index-with-index-in-possible_cp.patch [bz#1087672] -- kvm-Revert-pc-Enforce-adding-CPUs-contiguously-and-remov.patch [bz#1087672] -- kvm-qdev-ignore-GlobalProperty.errp-for-hotplugged-devic.patch [bz#1087672] -- kvm-vl-exit-if-a-bad-property-value-is-passed-to-global.patch [bz#1087672] -- kvm-apic-fix-broken-migration-for-kvm-apic.patch [bz#1087672] -- kvm-RHEL-only-hw-char-pl011-fix-SBSA-reset.patch [bz#1266048] -- kvm-migration-regain-control-of-images-when-migration-fa.patch [bz#1361539] -- kvm-migration-Promote-improved-autoconverge-commands-out.patch [bz#1358141] -- kvm-spapr-Ensure-CPU-cores-are-added-contiguously-and-re.patch [bz#1361443] -- kvm-spapr-disintricate-core-id-from-DT-semantics.patch [bz#1361443] -- kvm-spapr-init-CPUState-cpu_index-with-index-relative-to.patch [bz#1361443] -- kvm-Revert-spapr-Ensure-CPU-cores-are-added-contiguously.patch [bz#1361443] -- kvm-spapr-Prevent-boot-CPU-core-removal.patch [bz#1361443] -- kvm-virtio-vga-propagate-on-gpu-realized-error.patch [bz#1360664] -- kvm-hw-virtio-pci-fix-virtio-behaviour.patch [bz#1360664] -- kvm-q35-disable-s3-s4-by-default.patch [bz#1357202] -- kvm-pcie-fix-link-active-status-bit-migration.patch [bz#1352860] -- kvm-pc-rhel-7.2-pcie-fix-link-active-status-bit-migratio.patch [bz#1352860] -- kvm-add-e1000e-ipxe-rom-symlink.patch [bz#1343092] -- kvm-e1000e-add-boot-rom.patch [bz#1343092] -- Resolves: bz#1087672 - ([Fujitsu 7.2 FEAT]: qemu vcpu hot-remove support) -- Resolves: bz#1266048 - (login prompt does not work inside KVM guest when keys are pressed while the kernel is booting) -- Resolves: bz#1323976 - (PCI: Add 64-bit MMIO support to PXB devices) -- Resolves: bz#1343092 - (RFE: Integrate e1000e implementation in downstream QEMU) -- Resolves: bz#1352860 - (Migration is failed from host RHEL7.2.z to host RHEL7.3 with "-M pc-i440fx-rhel7.0.0 -device nec-usb-xhci") -- Resolves: bz#1357202 - ([Q35] S3 should be disabled by default for the pc-q35-rhel7.3.0 machine type) -- Resolves: bz#1358141 - (Removal of the "x-" prefix for dynamic cpu throttling) -- Resolves: bz#1360664 - ([virtio] Update default virtio-1 behavior for virtio devices) -- Resolves: bz#1361443 - (ppc64le: Introduce stable cpu_index for cpu hotplugging) -- Resolves: bz#1361539 - (block/io.c:1342: bdrv_co_do_pwritev: Assertion `!(bs->open_flags & 0x0800)' failed on failed migrate) - -* Tue Aug 02 2016 Miroslav Rezanina - rhev-2.6.0-18.el7 -- kvm-pci-fix-unaligned-access-in-pci_xxx_quad.patch [bz#1343092] -- kvm-msix-make-msix_clr_pending-visible-for-clients.patch [bz#1343092] -- kvm-pci-Introduce-define-for-PM-capability-version-1.1.patch [bz#1343092] -- kvm-pcie-Add-support-for-PCIe-CAP-v1.patch [bz#1343092] -- kvm-pcie-Introduce-function-for-DSN-capability-creation.patch [bz#1343092] -- kvm-vmxnet3-Use-generic-function-for-DSN-capability-defi.patch [bz#1343092] -- kvm-net-Introduce-Toeplitz-hash-calculator.patch [bz#1343092] -- kvm-net-Add-macros-for-MAC-address-tracing.patch [bz#1343092] -- kvm-vmxnet3-Use-common-MAC-address-tracing-macros.patch [bz#1343092] -- kvm-net_pkt-Name-vmxnet3-packet-abstractions-more-generi.patch [bz#1343092] -- kvm-rtl8139-Move-more-TCP-definitions-to-common-header.patch [bz#1343092] -- kvm-net_pkt-Extend-packet-abstraction-as-required-by-e10.patch [bz#1343092] -- kvm-vmxnet3-Use-pci_dma_-API-instead-of-cpu_physical_mem.patch [bz#1343092] -- kvm-e1000_regs-Add-definitions-for-Intel-82574-specific-.patch [bz#1343092] -- kvm-e1000-Move-out-code-that-will-be-reused-in-e1000e.patch [bz#1343092] -- kvm-net-Introduce-e1000e-device-emulation.patch [bz#1343092] -- kvm-e1000e-Fix-build-with-gcc-4.6.3-and-ust-tracing.patch [bz#1343092] -- kvm-pci-fix-pci_requester_id.patch [bz#1350196] -- kvm-hw-pci-delay-bus_master_enable_region-initialization.patch [bz#1350196] -- kvm-q35-allow-dynamic-sysbus.patch [bz#1350196] -- kvm-q35-rhel-allow-dynamic-sysbus.patch [bz#1350196] -- kvm-hw-iommu-enable-iommu-with-device.patch [bz#1350196] -- kvm-machine-remove-iommu-property.patch [bz#1350196] -- kvm-rhel-Revert-unwanted-inconsequential-changes-to-ivsh.patch [bz#1333318] -- kvm-rhel-Disable-ivshmem-plain-migration-ivshmem-doorbel.patch [bz#1333318] -- kvm-nvdimm-fix-memory-leak-in-error-code-path.patch [bz#1361205] -- kvm-i8257-Set-no-user-flag.patch [bz#1337457] -- kvm-bitops-Add-MAKE_64BIT_MASK-macro.patch [bz#1339196] -- kvm-target-i386-Provide-TCG_PHYS_ADDR_BITS.patch [bz#1339196] -- kvm-target-i386-Allow-physical-address-bits-to-be-set.patch [bz#1339196] -- kvm-target-i386-Mask-mtrr-mask-based-on-CPU-physical-add.patch [bz#1339196] -- kvm-target-i386-Fill-high-bits-of-mtrr-mask.patch [bz#1339196] -- kvm-target-i386-Set-physical-address-bits-based-on-host.patch [bz#1339196] -- kvm-target-i386-Enable-host-phys-bits-on-RHEL.patch [bz#1339196] -- kvm-pc-Fix-rhel6.3.0-compat_props-setting.patch [bz#1362264] -- Resolves: bz#1333318 - (ivshmem-plain support in RHEL 7.3) -- Resolves: bz#1337457 - (enable i8257 device) -- Resolves: bz#1339196 - (qemu-kvm (on target host) killed by SIGABRT when migrating a guest from AMD host to Intel host.) -- Resolves: bz#1343092 - (RFE: Integrate e1000e implementation in downstream QEMU) -- Resolves: bz#1350196 - (Enable IOMMU device with -device intel-iommu) -- Resolves: bz#1361205 - (nvdimm: fix memory leak in error code path) -- Resolves: bz#1362264 - (rhel6.3.0 machine-type using wrong compat_props list) - -* Fri Jul 29 2016 Miroslav Rezanina - rhev-2.6.0-17.el7 -- kvm-Disable-mptsas1068-device.patch [bz#1333282] -- kvm-Disable-sd-card.patch [bz#1333282] -- kvm-Disable-rocker-device.patch [bz#1333282] -- kvm-Disable-new-ipmi-devices.patch [bz#1333282] -- kvm-Disable-hyperv-testdev.patch [bz#1333282] -- kvm-Disable-allwiner_ahci-device.patch [bz#1333282] -- kvm-Disable-igd-passthrough-i440FX.patch [bz#1333282] -- kvm-Disable-vfio-platform-device.patch [bz#1333282] -- kvm-tap-vhost-busy-polling-support.patch [bz#1345715 bz#1353791] -- kvm-vl-change-runstate-only-if-new-state-is-different-fr.patch [bz#1355982] -- kvm-virtio-error-out-if-guest-exceeds-virtqueue-size.patch [bz#1359733] -- kvm-migration-set-state-to-post-migrate-on-failure.patch [bz#1355683] -- kvm-block-drop-support-for-using-qcow-2-encryption-with-.patch [bz#1336659] -- kvm-json-streamer-Don-t-leak-tokens-on-incomplete-parse.patch [bz#1360612] -- kvm-json-streamer-fix-double-free-on-exiting-during-a-pa.patch [bz#1360612] -- kvm-Add-dump-guest-memory.py-to-all-archs.patch [bz#1360225] -- Resolves: bz#1333282 - (Disable new devices in QEMU 2.6) -- Resolves: bz#1336659 - (Core dump when re-launch guest with encrypted block device) -- Resolves: bz#1345715 - (Busy polling support for vhost net in qemu) -- Resolves: bz#1353791 - (Busy polling support for vhost) -- Resolves: bz#1355683 - (qemu core dump when do postcopy migration again after canceling a migration in postcopy phase) -- Resolves: bz#1355982 - (qemu will abort after type two"system_reset" after the guest poweroff) -- Resolves: bz#1359733 - (CVE-2016-5403 qemu-kvm-rhev: Qemu: virtio: unbounded memory allocation on host via guest leading to DoS [rhel-7.3]) -- Resolves: bz#1360225 - (Can't extract guest memory dump from qemu core) -- Resolves: bz#1360612 - (Memory leak on incomplete JSON parse) - -* Tue Jul 26 2016 Miroslav Rezanina - rhev-2.6.0-16.el7 -- kvm-exec-Remove-cpu-from-cpus-list-during-cpu_exec_exit.patch [bz#1172917] -- kvm-exec-Do-vmstate-unregistration-from-cpu_exec_exit.patch [bz#1172917] -- kvm-cpu-Reclaim-vCPU-objects.patch [bz#1172917] -- kvm-cpu-Add-a-sync-version-of-cpu_remove.patch [bz#1172917] -- kvm-qdev-hotplug-Introduce-HotplugHandler.pre_plug-callb.patch [bz#1172917] -- kvm-cpu-Abstract-CPU-core-type.patch [bz#1172917] -- kvm-xics-xics_kvm-Handle-CPU-unplug-correctly.patch [bz#1172917] -- kvm-spapr_drc-Prevent-detach-racing-against-attach-for-C.patch [bz#1172917] -- kvm-qom-API-to-get-instance_size-of-a-type.patch [bz#1172917] -- kvm-spapr-Abstract-CPU-core-device-and-type-specific-cor.patch [bz#1172917] -- kvm-spapr-Move-spapr_cpu_init-to-spapr_cpu_core.c.patch [bz#1172917] -- kvm-spapr-convert-boot-CPUs-into-CPU-core-devices.patch [bz#1172917] -- kvm-spapr-CPU-hotplug-support.patch [bz#1172917] -- kvm-spapr-CPU-hot-unplug-support.patch [bz#1172917] -- kvm-QMP-Add-query-hotpluggable-cpus.patch [bz#1172917] -- kvm-hmp-Add-info-hotpluggable-cpus-HMP-command.patch [bz#1172917] -- kvm-spapr-implement-query-hotpluggable-cpus-callback.patch [bz#1172917] -- kvm-qapi-Report-support-for-device-cpu-hotplug-in-query-.patch [bz#1172917] -- kvm-qapi-keep-names-in-CpuInstanceProperties-in-sync-wit.patch [bz#1172917] -- kvm-spapr-fix-write-past-end-of-array-error-in-cpu-core-.patch [bz#1172917] -- kvm-spapr-Restore-support-for-older-PowerPC-CPU-cores.patch [bz#1172917] -- kvm-spapr-Restore-support-for-970MP-and-POWER8NVL-CPU-co.patch [bz#1172917] -- kvm-spapr-drop-reference-on-child-object-during-core-rea.patch [bz#1172917] -- kvm-spapr-do-proper-error-propagation-in-spapr_cpu_core_.patch [bz#1172917] -- kvm-spapr-drop-duplicate-variable-in-spapr_core_release.patch [bz#1172917] -- kvm-spapr-Ensure-thread0-of-CPU-core-is-always-realized-.patch [bz#1172917] -- kvm-spapr-fix-core-unplug-crash.patch [bz#1172917] -- kvm-usbredir-add-streams-property.patch [bz#1353180] -- kvm-usbredir-turn-off-streams-for-rhel7.2-older.patch [bz#1353180] -- kvm-net-fix-qemu_announce_self-not-emitting-packets.patch [bz#1343433] -- kvm-Fix-crash-bug-in-rebase-of__com.redhat_drive_add.patch [bz#1352865] -- kvm-ppc-Yet-another-fix-for-the-huge-page-support-detect.patch [bz#1347498] -- kvm-ppc-Huge-page-detection-mechanism-fixes-Episode-III.patch [bz#1347498] -- kvm-hw-ppc-spapr-Make-sure-to-close-the-htab_fd-when-mig.patch [bz#1354341] -- Resolves: bz#1172917 - (add support for CPU hotplugging (qemu-kvm-rhev)) -- Resolves: bz#1343433 - (migration: announce_self fix) -- Resolves: bz#1347498 - ([ppc64le] Guest can't boot up with hugepage memdev) -- Resolves: bz#1352865 - (Boot guest with two virtio-scsi-pci devices and spice, QEMU core dump after executing '(qemu)__com.redhat_drive_add') -- Resolves: bz#1353180 - (7.3->7.2 migration: qemu-kvm: usbredirparser: error unserialize caps mismatch) -- Resolves: bz#1354341 - (guest hang after cancel migration then migrate again) - -* Fri Jul 22 2016 Miroslav Rezanina - rhev-2.6.0-15.el7 -- kvm-spapr_pci-Use-correct-DMA-LIOBN-when-composing-the-d.patch [bz#1213667] -- kvm-spapr_iommu-Finish-renaming-vfio_accel-to-need_vfio.patch [bz#1213667] -- kvm-spapr_iommu-Move-table-allocation-to-helpers.patch [bz#1213667] -- kvm-vmstate-Define-VARRAY-with-VMS_ALLOC.patch [bz#1213667] -- kvm-spapr_iommu-Introduce-enabled-state-for-TCE-table.patch [bz#1213667] -- kvm-spapr_iommu-Migrate-full-state.patch [bz#1213667] -- kvm-spapr_iommu-Add-root-memory-region.patch [bz#1213667] -- kvm-spapr_pci-Reset-DMA-config-on-PHB-reset.patch [bz#1213667] -- kvm-spapr_pci-Add-and-export-DMA-resetting-helper.patch [bz#1213667] -- kvm-memory-Add-reporting-of-supported-page-sizes.patch [bz#1213667] -- kvm-spapr-ensure-device-trees-are-always-associated-with.patch [bz#1213667] -- kvm-spapr_iommu-Realloc-guest-visible-TCE-table-when-sta.patch [bz#1213667] -- kvm-vfio-spapr-Add-DMA-memory-preregistering-SPAPR-IOMMU.patch [bz#1213667] -- kvm-vfio-Add-host-side-DMA-window-capabilities.patch [bz#1213667] -- kvm-vfio-spapr-Create-DMA-window-dynamically-SPAPR-IOMMU.patch [bz#1213667] -- kvm-spapr_pci-spapr_pci_vfio-Support-Dynamic-DMA-Windows.patch [bz#1213667] -- kvm-qemu-sockets-use-qapi_free_SocketAddress-in-cleanup.patch [bz#1354090] -- kvm-tap-use-an-exit-notifier-to-call-down_script.patch [bz#1354090] -- kvm-slirp-use-exit-notifier-for-slirp_smb_cleanup.patch [bz#1354090] -- kvm-net-do-not-use-atexit-for-cleanup.patch [bz#1354090] -- kvm-virtio-mmio-format-transport-base-address-in-BusClas.patch [bz#1356815] -- kvm-vfio-pci-Hide-ARI-capability.patch [bz#1356376] -- kvm-qxl-factor-out-qxl_get_check_slot_offset.patch [bz#1235732] -- kvm-qxl-store-memory-region-and-offset-instead-of-pointe.patch [bz#1235732] -- kvm-qxl-fix-surface-migration.patch [bz#1235732] -- kvm-qxl-fix-qxl_set_dirty-call-in-qxl_dirty_one_surface.patch [bz#1235732] -- kvm-Add-install-dependency-required-for-usb-streams.patch [bz#1354443] -- Resolves: bz#1213667 - (Dynamic DMA Windows for VFIO on Power (qemu component)) -- Resolves: bz#1235732 - (spice-gtk shows outdated screen state after migration [qemu-kvm-rhev]) -- Resolves: bz#1354090 - (Boot guest with vhostuser server mode, QEMU prompt 'Segmentation fault' after executing '(qemu)system_powerdown') -- Resolves: bz#1354443 - (/usr/libexec/qemu-kvm: undefined symbol: libusb_free_ss_endpoint_companion_descriptor) -- Resolves: bz#1356376 - ([Q35] Nic which passthrough from host didn't be found in guest when enable multifunction) -- Resolves: bz#1356815 - (AArch64: backport virtio-mmio dev pathname fix) - -* Tue Jul 19 2016 Miroslav Rezanina - rhev-2.6.0-14.el7 -- kvm-add-vgabios-virtio.bin-symlink.patch [bz#1347402] -- kvm-usb-enable-streams-support.patch [bz#1033733] -- kvm-hw-arm-virt-kill-7.2-machine-type.patch [bz#1356814] -- kvm-blockdev-Fix-regression-with-the-default-naming-of-t.patch [bz#1353801] -- kvm-qemu-iotests-Test-naming-of-throttling-groups.patch [bz#1353801] -- kvm-target-i386-Show-host-and-VM-TSC-frequencies-on-mism.patch [bz#1351442] -- Resolves: bz#1033733 - (RFE: add support for USB-3 bulk streams - qemu-kvm) -- Resolves: bz#1347402 - (vgabios-virtio.bin should be symlinked in qemu-kvm-rhev) -- Resolves: bz#1351442 - ("TSC frequency mismatch" warning message after migration) -- Resolves: bz#1353801 - (The default io throttling group name is null, which makes all throttled disks with a default group name in the same group) -- Resolves: bz#1356814 - (AArch64: remove non-released 7.2 machine type) - -* Tue Jul 12 2016 Miroslav Rezanina - rhev-2.6.0-13.el7 -- kvm-block-gluster-add-support-for-selecting-debug-loggin.patch [bz#1320714] -- kvm-Revert-static-checker-e1000-82540em-got-aliased-to-e.patch [bz#1353070] -- kvm-Revert-e1000-use-alias-for-default-model.patch [bz#1353070] -- kvm-7.x-compat-e1000-82540em.patch [bz#1353070] -- kvm-target-i386-add-Skylake-Client-cpu-model.patch [bz#1327589] -- kvm-scsi-generic-Merge-block-max-xfer-len-in-INQUIRY-res.patch [bz#1353816] -- kvm-raw-posix-Fetch-max-sectors-for-host-block-device.patch [bz#1353816] -- kvm-scsi-Advertise-limits-by-blocksize-not-512.patch [bz#1353816] -- kvm-mirror-clarify-mirror_do_read-return-code.patch [bz#1336705] -- kvm-mirror-limit-niov-to-IOV_MAX-elements-again.patch [bz#1336705] -- kvm-iotests-add-small-granularity-mirror-test.patch [bz#1336705] -- Resolves: bz#1320714 - ([RFE] Allow the libgfapi logging level to be controlled.) -- Resolves: bz#1327589 - (Add Skylake CPU model) -- Resolves: bz#1336705 - (Drive mirror with option granularity fail) -- Resolves: bz#1353070 - (Migration is failed from host RHEL7.2.z to host RHEL7.3 with "-M rhel6.6.0 -device e1000-82540em") -- Resolves: bz#1353816 - (expose host BLKSECTGET limit in scsi-block (qemu-kvm-rhev)) - -* Fri Jul 08 2016 Miroslav Rezanina - rhev-2.6.0-12.el7 -- kvm-Fix-crash-with-__com.redhat_drive_del.patch [bz#1341531] -- kvm-hw-arm-virt-fix-limit-of-64-bit-ACPI-ECAM-PCI-MMIO-r.patch [bz#1349337] -- kvm-Increase-locked-memory-limit-for-all-users-not-just-.patch [bz#1350735] -- kvm-target-i386-Remove-SSE4a-from-qemu64-CPU-model.patch [bz#1318386 bz#1321139 bz#1321139] -- kvm-target-i386-Remove-ABM-from-qemu64-CPU-model.patch [bz#1318386 bz#1321139 bz#1321139] -- kvm-pc-Recover-PC_RHEL7_1_COMPAT-from-RHEL-7.2-code.patch [bz#1318386 bz#1318386 bz#1321139] -- kvm-pc-Include-missing-PC_COMPAT_2_3-entries-in-PC_RHEL7.patch [bz#1318386 bz#1318386 bz#1321139] -- kvm-vhost-user-disable-chardev-handlers-on-close.patch [bz#1347077] -- kvm-char-clean-up-remaining-chardevs-when-leaving.patch [bz#1347077] -- kvm-socket-add-listen-feature.patch [bz#1347077] -- kvm-socket-unlink-unix-socket-on-remove.patch [bz#1347077] -- kvm-char-do-not-use-atexit-cleanup-handler.patch [bz#1347077] -- kvm-vfio-add-pcie-extended-capability-support.patch [bz#1346688] -- kvm-vfio-pci-Hide-SR-IOV-capability.patch [bz#1346688] -- kvm-memory-Add-MemoryRegionIOMMUOps.notify_started-stopp.patch [bz#1346920] -- kvm-intel_iommu-Throw-hw_error-on-notify_started.patch [bz#1346920] -- Resolves: bz#1318386 - (pc-rhel7.2.0 machine type definition needs some fixes) -- Resolves: bz#1321139 - (qemu-kvm-rhev prints warnings in the default CPU+machine-type configuration.) -- Resolves: bz#1341531 - (qemu gets SIGSEGV when hot-plug a scsi hostdev device with duplicate target address) -- Resolves: bz#1346688 - ([Q35] vfio read-only SR-IOV capability confuses OVMF) -- Resolves: bz#1346920 - (vIOMMU: prevent unsupported configurations with vfio) -- Resolves: bz#1347077 - (vhost-user: A socket file is not deleted after VM's port is detached.) -- Resolves: bz#1349337 - (hw/arm/virt: fix limit of 64-bit ACPI/ECAM PCI MMIO range) -- Resolves: bz#1350735 - (memory locking limit for regular users is too low to launch guests through libvirt) - -* Fri Jul 01 2016 Miroslav Rezanina - rhev-2.6.0-11.el7 -- kvm-Postcopy-Avoid-0-length-discards.patch [bz#1347256] -- kvm-Migration-Split-out-ram-part-of-qmp_query_migrate.patch [bz#1347256] -- kvm-Postcopy-Add-stats-on-page-requests.patch [bz#1347256] -- kvm-test-Postcopy.patch [bz#1347256] -- kvm-tests-fix-libqtest-socket-timeouts.patch [bz#1347256] -- kvm-Postcopy-Check-for-support-when-setting-the-capabili.patch [bz#1347256] -- kvm-rbd-change-error_setg-to-error_setg_errno.patch [bz#1329641] -- kvm-ppc-Disable-huge-page-support-if-it-is-not-available.patch [bz#1347498] -- kvm-acpi-do-not-use-TARGET_PAGE_SIZE.patch [bz#1270345] -- kvm-acpi-convert-linker-from-GArray-to-BIOSLinker-struct.patch [bz#1270345] -- kvm-acpi-simplify-bios_linker-API-by-removing-redundant-.patch [bz#1270345] -- kvm-acpi-cleanup-bios_linker_loader_cleanup.patch [bz#1270345] -- kvm-tpm-apci-cleanup-TCPA-table-initialization.patch [bz#1270345] -- kvm-acpi-make-bios_linker_loader_add_pointer-API-offset-.patch [bz#1270345] -- kvm-acpi-make-bios_linker_loader_add_checksum-API-offset.patch [bz#1270345] -- kvm-pc-dimm-get-memory-region-from-get_memory_region.patch [bz#1270345] -- kvm-pc-dimm-introduce-realize-callback.patch [bz#1270345] -- kvm-pc-dimm-introduce-get_vmstate_memory_region-callback.patch [bz#1270345] -- kvm-nvdimm-support-nvdimm-label.patch [bz#1270345] -- kvm-acpi-add-aml_object_type.patch [bz#1270345] -- kvm-acpi-add-aml_call5.patch [bz#1270345] -- kvm-nvdimm-acpi-set-HDLE-properly.patch [bz#1270345] -- kvm-nvdimm-acpi-save-arg3-of-_DSM-method.patch [bz#1270345] -- kvm-nvdimm-acpi-check-UUID.patch [bz#1270345] -- kvm-nvdimm-acpi-abstract-the-operations-for-root-nvdimm-.patch [bz#1270345] -- kvm-nvdimm-acpi-check-revision.patch [bz#1270345] -- kvm-nvdimm-acpi-support-Get-Namespace-Label-Size-functio.patch [bz#1270345] -- kvm-nvdimm-acpi-support-Get-Namespace-Label-Data-functio.patch [bz#1270345] -- kvm-nvdimm-acpi-support-Set-Namespace-Label-Data-functio.patch [bz#1270345] -- kvm-docs-add-NVDIMM-ACPI-documentation.patch [bz#1270345] -- kvm-Fix-qemu-kvm-does-not-quit-when-booting-guest-w-241-.patch [bz#1126666] -- kvm-Adjust-locked-memory-limits-to-allow-unprivileged-VM.patch [bz#1350735] -- kvm-dma-helpers-dma_blk_io-cancel-support.patch [bz#1346237] -- Resolves: bz#1126666 - (qemu-kvm does not quit when booting guest w/ 161 vcpus and "-no-kvm") -- Resolves: bz#1270345 - ([Intel 7.3 FEAT] Virtualization support for NVDIMM - qemu support) -- Resolves: bz#1329641 - ([RFE]Ceph/RBD block driver for qemu-kvm : change error_setg() to error_setg_errno()) -- Resolves: bz#1346237 - (win 10.x86_64 guest coredump when execute avocado test case: win_virtio_update.install_driver) -- Resolves: bz#1347256 - (Backport 2.7 postcopy fix, test and stats) -- Resolves: bz#1347498 - ([ppc64le] Guest can't boot up with hugepage memdev) -- Resolves: bz#1350735 - (memory locking limit for regular users is too low to launch guests through libvirt) - -* Tue Jun 28 2016 Miroslav Rezanina - rhev-2.6.0-10.el7 -- kvm-block-clarify-error-message-for-qmp-eject.patch [bz#961589] -- kvm-blockdev-clean-up-error-handling-in-do_open_tray.patch [bz#961589] -- kvm-blockdev-clarify-error-on-attempt-to-open-locked-tra.patch [bz#961589] -- kvm-blockdev-backup-Use-bdrv_lookup_bs-on-target.patch [bz#1336310 bz#1339498] -- kvm-blockdev-backup-Don-t-move-target-AioContext-if-it-s.patch [bz#1336310 bz#1339498] -- kvm-virtio-blk-Remove-op-blocker-for-dataplane.patch [bz#1336310 bz#1339498] -- kvm-virtio-scsi-Remove-op-blocker-for-dataplane.patch [bz#1336310 bz#1339498] -- kvm-spec-add-a-sample-kvm.conf-to-enable-Nested-Virtuali.patch [bz#1290150] -- Resolves: bz#1290150 - (Include example kvm.conf with nested options commented out) -- Resolves: bz#1336310 - (virtio-scsi data-plane does not support block management QMP commands) -- Resolves: bz#1339498 - (Core dump when do 'block-job-complete' after 'drive-mirror') -- Resolves: bz#961589 - (rhel7 guest sometimes didnt unlock the cdrom when qemu-kvm trying to eject) - -* Thu Jun 23 2016 Miroslav Rezanina - rhev-2.6.0-9.el7 -- kvm-7.2-machine-type-compatibility.patch [bz#1344269] -- kvm-vhost-user-add-ability-to-know-vhost-user-backend-di.patch [bz#1322087] -- kvm-tests-vhost-user-bridge-add-client-mode.patch [bz#1322087] -- kvm-tests-vhost-user-bridge-workaround-stale-vring-base.patch [bz#1322087] -- kvm-qemu-char-add-qemu_chr_disconnect-to-close-a-fd-acce.patch [bz#1322087] -- kvm-vhost-user-disconnect-on-start-failure.patch [bz#1322087] -- kvm-vhost-net-do-not-crash-if-backend-is-not-present.patch [bz#1322087] -- kvm-vhost-net-save-restore-vhost-user-acked-features.patch [bz#1322087] -- kvm-vhost-net-save-restore-vring-enable-state.patch [bz#1322087] -- kvm-tests-append-i386-tests.patch [bz#1322087] -- kvm-test-start-vhost-user-reconnect-test.patch [bz#1322087] -- kvm-block-Prevent-sleeping-jobs-from-resuming-if-they-ha.patch [bz#1265179] -- kvm-blockjob-move-iostatus-reset-out-of-block_job_enter.patch [bz#1265179] -- kvm-blockjob-rename-block_job_is_paused.patch [bz#1265179] -- kvm-blockjob-add-pause-points.patch [bz#1265179] -- kvm-blockjob-add-block_job_get_aio_context.patch [bz#1265179] -- kvm-block-use-safe-iteration-over-AioContext-notifiers.patch [bz#1265179] -- kvm-blockjob-add-AioContext-attached-callback.patch [bz#1265179] -- kvm-mirror-follow-AioContext-change-gracefully.patch [bz#1265179] -- kvm-backup-follow-AioContext-change-gracefully.patch [bz#1265179] -- kvm-block-Fix-snapshot-on-with-aio-native.patch [bz#1336649] -- kvm-block-iscsi-avoid-potential-overflow-of-acb-task-cdb.patch [bz#1340930] -- kvm-block-fixed-BdrvTrackedRequest-filling-in-bdrv_co_di.patch [bz#1348763] -- kvm-block-fix-race-in-bdrv_co_discard-with-drive-mirror.patch [bz#1348763] -- kvm-block-process-before_write_notifiers-in-bdrv_co_disc.patch [bz#1348763] -- Resolves: bz#1265179 - (With dataplane, when migrate to remote NBD disk after drive-mirror, qemu core dump ( both src host and des host)) -- Resolves: bz#1322087 - (No recovery after vhost-user process restart) -- Resolves: bz#1336649 - ([RHEL.7.3] Guest will not boot up when specify aio=native and snapshot=on together) -- Resolves: bz#1340930 - (CVE-2016-5126 qemu-kvm-rhev: Qemu: block: iscsi: buffer overflow in iscsi_aio_ioctl [rhel-7.3]) -- Resolves: bz#1344269 - (Migration: Fixup machine types and HW_COMPAT (stage 2a)) -- Resolves: bz#1348763 - (Fix dirty marking with block discard requests) - -* Tue Jun 21 2016 Miroslav Rezanina - rhev-2.6.0-8.el7 -- kvm-Disable-Windows-enlightnements.patch [bz#1336517] -- kvm-ppc-spapr-Refactor-h_client_architecture_support-CPU.patch [bz#1341492] -- kvm-ppc-Split-pcr_mask-settings-into-supported-bits-and-.patch [bz#1341492] -- kvm-ppc-Provide-function-to-get-CPU-class-of-the-host-CP.patch [bz#1341492] -- kvm-ppc-Improve-PCR-bit-selection-in-ppc_set_compat.patch [bz#1341492] -- kvm-ppc-Add-PowerISA-2.07-compatibility-mode.patch [bz#1341492] -- kvm-machine-types-fix-pc_machine_-_options-chain.patch [bz#1344320] -- kvm-Fix-rhel6-rom-file.patch [bz#1344320] -- kvm-fix-vga-type-for-older-machines.patch [bz#1344320] -- kvm-Revert-aio_notify-force-main-loop-wakeup-with-SIGIO-.patch [bz#1188656] -- kvm-Make-avx2-configure-test-work-with-O2.patch [bz#1323294] -- kvm-avx2-configure-Use-primitives-in-test.patch [bz#1323294] -- kvm-vfio-Fix-broken-EEH.patch [bz#1346627] -- Resolves: bz#1188656 - (lost block IO completion notification (for virtio-scsi disk) hangs main loop) -- Resolves: bz#1323294 - (AVX-2 migration optimisation) -- Resolves: bz#1336517 - (Disable hv-vpindex, hv-runtime, hv-reset, hv-synic & hv-stimer enlightenment for Windows) -- Resolves: bz#1341492 - (QEMU on POWER does not support the PowerISA 2.07 compatibility mode) -- Resolves: bz#1344320 - (migration: fix pc_i440fx_*_options chaining) -- Resolves: bz#1346627 - (qemu discards EEH ioctl results) - -* Thu Jun 16 2016 Miroslav Rezanina - rhev-2.6.0-7.el7 -- kvm-pc-allow-raising-low-memory-via-max-ram-below-4g-opt.patch [bz#1176144] -- kvm-vga-add-sr_vbe-register-set.patch [bz#1331415 bz#1346976] -- Resolves: bz#1176144 - ([Nokia RHEL 7.3 Feature]: 32-bit operating systems get very little memory space with new Qemu's) -- Resolves: bz#1331415 - (CVE-2016-3710 qemu-kvm-rhev: qemu: incorrect banked access bounds checking in vga module [rhel-7.3]) -- Resolves: bz#1346976 - (Regression from CVE-2016-3712: windows installer fails to start) -- Resolves: bz#1339467 - (User can not create windows 7 virtual machine in rhevm3.6.5.) - -* Wed Jun 15 2016 Miroslav Rezanina - rhev-2.6.0-6.el7 -- kvm-throttle-refuse-iops-size-without-iops-total-read-wr.patch [bz#1342330] -- kvm-scsi-mark-TYPE_SCSI_DISK_BASE-as-abstract.patch [bz#1338043] -- kvm-scsi-disk-add-missing-break.patch [bz#1338043] -- kvm-Disable-spapr-rng.patch [bz#1343891] -- kvm-spec-Update-rules-before-triggering-for-kvm-device.patch [bz#1338755] -- kvm-spec-Do-not-package-ivshmem-server-and-ivshmem-clien.patch [bz#1320476] -- Resolves: bz#1320476 - (Failed to upgrade qemu-kvm-tools-rhev from 2.3.0 to 2.5.0) -- Resolves: bz#1338043 - (scsi-block fix - receive the right SCSI status on reads and writes) -- Resolves: bz#1338755 - (qemu-kvm-rhev doesn't reload udev rules before triggering for kvm device) -- Resolves: bz#1342330 - (There is no error prompt when set the io throttling parameters iops_size without iops) -- Resolves: bz#1343891 - (Disable spapr-rng device in downstream qemu 2.6) - -* Mon Jun 06 2016 Miroslav Rezanina - rhev-2.6.0-5.el7 -- kvm-spapr-update-RHEL-7.2-machine-type.patch [bz#1316303] -- kvm-migration-fix-HW_COMPAT_RHEL7_2.patch [bz#1316303] -- kvm-target-i386-add-a-generic-x86-nmi-handler.patch [bz#1335720] -- kvm-nmi-remove-x86-specific-nmi-handling.patch [bz#1335720] -- kvm-cpus-call-the-core-nmi-injection-function.patch [bz#1335720] -- kvm-spec-link-sgabios.bin-only-for-x86_64.patch [bz#1337917] -- kvm-Add-PCIe-bridge-devices-for-AArch64.patch [bz#1326420] -- kvm-Remove-unsupported-VFIO-devices-from-QEMU.patch [bz#1326420] -- kvm-hw-net-spapr_llan-Delay-flushing-of-the-RX-queue-whi.patch [bz#1210221] -- kvm-hw-net-spapr_llan-Provide-counter-with-dropped-rx-fr.patch [bz#1210221] -- kvm-iscsi-pass-SCSI-status-back-for-SG_IO.patch [bz#1338043] -- kvm-dma-helpers-change-BlockBackend-to-opaque-value-in-D.patch [bz#1338043] -- kvm-scsi-disk-introduce-a-common-base-class.patch [bz#1338043] -- kvm-scsi-disk-introduce-dma_readv-and-dma_writev.patch [bz#1338043] -- kvm-scsi-disk-add-need_fua_emulation-to-SCSIDiskClass.patch [bz#1338043] -- kvm-scsi-disk-introduce-scsi_disk_req_check_error.patch [bz#1338043] -- kvm-scsi-block-always-use-SG_IO.patch [bz#1338043] -- kvm-tools-kvm_stat-Powerpc-related-fixes.patch [bz#1337033] -- kvm-pc-New-default-pc-i440fx-rhel7.3.0-machine-type.patch [bz#1305121] -- kvm-7.3-mismerge-fix-Fix-ich9-intel-hda-compatibility.patch [bz#1342015] -- kvm-PC-migration-compat-Section-footers-global-state.patch [bz#1342015] -- kvm-fw_cfg-for-7.2-compatibility.patch [bz#1342015] -- kvm-pc-Create-new-pc-q35-rhel7.3.0-machine-type.patch [bz#1342015] -- kvm-q35-Remove-7.0-7.1-7.2-machine-types.patch [bz#1342015] -- Resolves: bz#1210221 - (Netperf UDP_STREAM Lost most of the packets on spapr-vlan device) -- Resolves: bz#1305121 - (rhel7.3.0 machine-types) -- Resolves: bz#1316303 - (Live migration of VMs from RHEL 7.2 <--> 7.3 with pseries-rhel7.2.0 machine type (qemu 2.6)) -- Resolves: bz#1326420 - (AArch64: clean and add devices to fully support aarch64 vm) -- Resolves: bz#1335720 - (watchdog action 'inject-nmi' takes no effect) -- Resolves: bz#1337033 - (kvm_stat AttributeError: 'ArchPPC' object has no attribute 'exit_reasons') -- Resolves: bz#1337917 - (qemu-kvm-rhev: Only ship /usr/share/qemu-kvm/sgabios.bin on x86) -- Resolves: bz#1338043 - (scsi-block fix - receive the right SCSI status on reads and writes) -- Resolves: bz#1342015 - (Migration: Fixup machine types and HW_COMPAT (stage 1b)) - -* Wed May 25 2016 Miroslav Rezanina - rhev-2.6.0-4.el7 -- kvm-pc-Use-right-HW_COMPAT_-macros-at-PC_RHEL7-compat-ma.patch [bz#1318386] -- kvm-compat-Add-missing-any_layout-in-HW_COMPAT_RHEL7_1.patch [bz#1318386] -- kvm-RHEL-Disable-unsupported-PowerPC-CPU-models.patch [bz#1317977] -- kvm-spec-Use-correct-upstream-QEMU-version.patch [bz#1335705] -- Resolves: bz#1317977 - (qemu-kvm-rhev supports a lot of CPU models) -- Resolves: bz#1318386 - (pc-rhel7.2.0 machine type definition needs some fixes) -- Resolves: bz#1335705 - ('QEMU 2.5.94 monitor' is used for qemu-kvm-rhev-2.6.0-1.el7.x86_64) - -* Mon May 23 2016 Miroslav Rezanina - rhev-2.6.0-3.el7 -- kvm-qmp-Report-drive_add-error-to-monitor.patch [bz#1337100] -- kvm-spec-Remove-dependency-to-ipxe-roms-qemu-for-aarch64.patch [bz#1337496] -- Resolves: bz#1337100 - (redhat_drive_add should report error to qmp if it fails to initialize) -- Resolves: bz#1337496 - (qemu-kvm-rhev should not depend on ipxe-roms-qemu on aarch64) - -* Tue May 17 2016 Miroslav Rezanina - rhev-2.6.0-2.el7 -- kvm-Fix-SLOF-dependency.patch [bz#1336296] -- Resolves: bz#1336296 - (failed dependencies on SLOF) - -* Thu May 12 2016 Miroslav Rezanina - rhev-2.6.0-1.el7 -- Rebase to QEMU 2.6.0 [bz#1289417] -- Resolves: bz#1289417 - (Rebase to QEMU 2.6) - -* Wed Oct 14 2015 Miroslav Rezanina - rhev-2.3.0-31.el7 -- kvm-Migration-Generate-the-completed-event-only-when-we-.patch [bz#1271145] -- Resolves: bz#1271145 - (Guest OS paused after migration.) - -* Mon Oct 12 2015 Jeff E. Nelson - rhev-2.3.0-30.el7 -- kvm-memhp-extend-address-auto-assignment-to-support-gaps.patch [bz#1267533] -- kvm-pc-memhp-force-gaps-between-DIMM-s-GPA.patch [bz#1267533] -- kvm-memory-allow-destroying-a-non-empty-MemoryRegion.patch [bz#1264347] -- kvm-hw-do-not-pass-NULL-to-memory_region_init-from-insta.patch [bz#1264347] -- kvm-tests-Fix-how-qom-test-is-run.patch [bz#1264347] -- kvm-libqtest-Clean-up-unused-QTestState-member-sigact_ol.patch [bz#1264347] -- kvm-libqtest-New-hmp-friends.patch [bz#1264347] -- kvm-device-introspect-test-New-covering-device-introspec.patch [bz#1264347] -- kvm-qmp-Fix-device-list-properties-not-to-crash-for-abst.patch [bz#1264347] -- kvm-qdev-Protect-device-list-properties-against-broken-d.patch [bz#1264347] -- kvm-Revert-qdev-Use-qdev_get_device_class-for-device-typ.patch [bz#1264347] -- Resolves: bz#1264347 - (QMP device-list-properties crashes for CPU devices) -- Resolves: bz#1267533 - (qemu quit when rebooting guest which hotplug memory >=13 times) - -* Thu Oct 08 2015 Miroslav Rezanina - rhev-2.3.0-29.el7 -- kvm-vfio-Remove-unneeded-union-from-VFIOContainer.patch [bz#1259556] -- kvm-vfio-Generalize-vfio_listener_region_add-failure-pat.patch [bz#1259556] -- kvm-vfio-Check-guest-IOVA-ranges-against-host-IOMMU-capa.patch [bz#1259556] -- kvm-vfio-Record-host-IOMMU-s-available-IO-page-sizes.patch [bz#1259556] -- kvm-memory-Allow-replay-of-IOMMU-mapping-notifications.patch [bz#1259556] -- kvm-vfio-Allow-hotplug-of-containers-onto-existing-guest.patch [bz#1259556] -- kvm-spapr_pci-Allow-PCI-host-bridge-DMA-window-to-be-con.patch [bz#1259556] -- kvm-spapr_iommu-Rename-vfio_accel-parameter.patch [bz#1259556] -- kvm-spapr_iommu-Provide-a-function-to-switch-a-TCE-table.patch [bz#1259556] -- kvm-spapr_pci-Allow-VFIO-devices-to-work-on-the-normal-P.patch [bz#1259556] -- Resolves: bz#1259556 - (Allow VFIO devices on the same guest PHB as emulated devices) - -* Mon Oct 05 2015 Miroslav Rezanina - rhev-2.3.0-28.el7 -- kvm-rhel-Revert-unwanted-cannot_instantiate_with_device_.patch [bz#1224542] -- kvm-Disable-additional-e1000-models.patch [bz#1224542 bz#1265161] -- kvm-Remove-intel-iommu-device.patch [bz#1224542] -- kvm-virtio-net-unbreak-self-announcement-and-guest-offlo.patch [bz#1262232] -- kvm-block-mirror-fix-full-sync-mode-when-target-does-not.patch [bz#1136382] -- Resolves: bz#1136382 - (block: Mirroring to raw block device doesn't zero out unused blocks) -- Resolves: bz#1224542 - (unsupported devices need to be disabled in qemu-kvm-rhev after rebasing to 2.3.0) -- Resolves: bz#1262232 - (self announcement and ctrl offloads does not work after migration) -- Resolves: bz#1265161 - (Support various e1000 variants) - -* Wed Sep 30 2015 Miroslav Rezanina - rhev-2.3.0-27.el7 -- kvm-sdl2-Fix-RGB555.patch [bz#1247479] -- kvm-spice-surface-switch-fast-path-requires-same-format-.patch [bz#1247479] -- kvm-virtio-blk-only-clear-VIRTIO_F_ANY_LAYOUT-for-legacy.patch [bz#1207687] -- kvm-vhost-enable-vhost-without-without-MSI-X.patch [bz#1207687] -- kvm-vhost-user-Send-VHOST_RESET_OWNER-on-vhost-stop.patch [bz#1207687] -- kvm-virtio-avoid-leading-underscores-for-helpers.patch [bz#1207687] -- kvm-vhost-user-use-VHOST_USER_XXX-macro-for-switch-state.patch [bz#1207687] -- kvm-vhost-user-add-protocol-feature-negotiation.patch [bz#1207687] -- kvm-vhost-rename-VHOST_RESET_OWNER-to-VHOST_RESET_DEVICE.patch [bz#1207687] -- kvm-vhost-user-add-VHOST_USER_GET_QUEUE_NUM-message.patch [bz#1207687] -- kvm-vhost-introduce-vhost_backend_get_vq_index-method.patch [bz#1207687] -- kvm-vhost-user-add-multiple-queue-support.patch [bz#1207687] -- kvm-vhost-user-add-a-new-message-to-disable-enable-a-spe.patch [bz#1207687] -- Resolves: bz#1207687 - ([6wind 7.2 FEAT]: vhost-user does not support multique) -- Resolves: bz#1247479 - (display mess when boot a win2012-r2-64 guest with -vga std) - -* Thu Sep 24 2015 Miroslav Rezanina - rhev-2.3.0-26.el7 -- kvm-qcow2-Make-size_to_clusters-return-uint64_t.patch [bz#1260365] -- kvm-iotests-Add-test-for-checking-large-image-files.patch [bz#1260365] -- Resolves: bz#1260365 - (Guest image created coredump after installation.) - -* Wed Sep 23 2015 Miroslav Rezanina - rhev-2.3.0-25.el7 -- kvm-block-backend-Expose-bdrv_write_zeroes.patch [bz#1256541] -- kvm-qemu-img-convert-Rewrite-copying-logic.patch [bz#1256541] -- kvm-main-loop-fix-qemu_notify_event-for-aio_notify-optim.patch [bz#1256541] -- kvm-error-New-error_fatal.patch [bz#1232308] -- kvm-Fix-bad-error-handling-after-memory_region_init_ram.patch [bz#1232308] -- kvm-loader-Fix-memory_region_init_resizeable_ram-error-h.patch [bz#1232308] -- kvm-memory-Fix-bad-error-handling-in-memory_region_init_.patch [bz#1232308] -- kvm-spapr_pci-encode-class-code-including-Prog-IF-regist.patch [bz#1264845] -- kvm-scripts-dump-guest-memory.py-fix-after-RAMBlock-chan.patch [bz#1234802] -- kvm-spec-Require-proper-version-of-SLOF.patch [bz#1263795] -- Resolves: bz#1232308 - ([abrt] qemu-system-x86: qemu_ram_alloc(): qemu-system-x86_64 killed by SIGABRT) -- Resolves: bz#1234802 - ([RHEL7.2] dump-guest-memory failed because of Python Exception There is no member named length.) -- Resolves: bz#1256541 - (qemu-img hangs forever in aio_poll when used to convert some images) -- Resolves: bz#1263795 - (vfio device can't be hot unplugged on powerpc guest) -- Resolves: bz#1264845 - ([regression] Guest usb mouse/keyboard could not be used on qemu-kvm-rhev-2.3.0-24.el7.ppc64le) - -* Fri Sep 18 2015 Miroslav Rezanina - rhev-2.3.0-24.el7 -- kvm-spapr-Don-t-use-QOM-syntax-for-DR-connectors.patch [bz#1262143] -- kvm-virtio-mmio-ioeventfd-support.patch [bz#1185480] -- kvm-scsi-fix-buffer-overflow-in-scsi_req_parse_cdb-CVE-2.patch [bz#1244334] -- kvm-spapr-Populate-ibm-associativity-lookup-arrays-corre.patch [bz#1262670] -- kvm-ppc-spapr-Fix-buffer-overflow-in-spapr_populate_drco.patch [bz#1262670] -- kvm-spapr_pci-Introduce-a-liobn-number-generating-macros.patch [bz#1263795] -- kvm-spapr_iommu-Make-spapr_tce_find_by_liobn-public.patch [bz#1263795] -- kvm-spapr_pci-Rework-device-tree-rendering.patch [bz#1263795] -- kvm-spapr_pci-enumerate-and-add-PCI-device-tree.patch [bz#1263795] -- kvm-spapr_pci-populate-ibm-loc-code.patch [bz#1263795] -- kvm-tests-remove-irrelevant-assertions-from-test-aio.patch [bz#1211689] -- kvm-aio-posix-move-pollfds-to-thread-local-storage.patch [bz#1211689] -- kvm-aio-Introduce-type-in-aio_set_fd_handler-and-aio_set.patch [bz#1211689] -- kvm-aio-Save-type-to-AioHandler.patch [bz#1211689] -- kvm-aio-posix-Introduce-aio_poll_clients.patch [bz#1211689] -- kvm-block-Mark-fd-handlers-as-protocol.patch [bz#1211689] -- kvm-nbd-Mark-fd-handlers-client-type-as-nbd-server.patch [bz#1211689] -- kvm-aio-Mark-ctx-notifier-s-client-type-as-context.patch [bz#1211689] -- kvm-dataplane-Mark-host-notifiers-client-type-as-datapla.patch [bz#1211689] -- kvm-block-Introduce-bdrv_aio_poll.patch [bz#1211689] -- kvm-block-Replace-nested-aio_poll-with-bdrv_aio_poll.patch [bz#1211689] -- kvm-block-Only-poll-block-layer-fds-in-bdrv_aio_poll.patch [bz#1211689] -- Resolves: bz#1185480 - (backport ioeventfd support for virtio-mmio) -- Resolves: bz#1211689 - (atomic live snapshots are not atomic with dataplane-backed devices) -- Resolves: bz#1244334 - (qemu-kvm-rhev: Qemu: scsi stack buffer overflow [rhel-7.2]) -- Resolves: bz#1262143 - (VM startup is very slow with large amounts of hotpluggable memory) -- Resolves: bz#1262670 - ([PowerKVM]SIGSEGV when boot up guest with -numa node and set up the cpus in one node to the boundary) -- Resolves: bz#1263795 - (vfio device can't be hot unplugged on powerpc guest) - -* Tue Sep 15 2015 Miroslav Rezanina - rhev-2.3.0-23.el7 -- kvm-scsi-disk-Fix-assertion-failure-on-WRITE-SAME.patch [bz#1247042] -- kvm-mirror-Speed-up-bitmap-initial-scanning.patch [bz#1259229] -- kvm-qemu-iotests-Disable-099-requires-blkverify.patch [bz#1257059] -- kvm-spapr-Reduce-advertised-max-LUNs-for-spapr_vscsi.patch [bz#1260464] -- kvm-vnc-Don-t-assert-if-opening-unix-socket-fails.patch [bz#1261263] -- kvm-qcow2-Handle-EAGAIN-returned-from-update_refcount.patch [bz#1254927] -- kvm-pc-memhotplug-fix-incorrectly-set-reserved-memory-en.patch [bz#1261846] -- kvm-pc-memhotplug-keep-reserved-memory-end-broken-on-rhe.patch [bz#1261846] -- Resolves: bz#1247042 - (qemu quit when using sg_write_same command inside RHEL7.2 guest) -- Resolves: bz#1254927 - (qemu-img shows Input/output error when compressing guest image) -- Resolves: bz#1257059 - (qemu-iotests 099 failed for vmdk) -- Resolves: bz#1259229 - (drive-mirror blocks QEMU due to lseek64() on raw image files) -- Resolves: bz#1260464 - (The spapr vscsi disks for lun id '9-31' and channel id '4-7' could not be recognized inside a power pc guest) -- Resolves: bz#1261263 - (qemu crash while start a guest with invalid vnc socket path) -- Resolves: bz#1261846 - (qemu-kvm-rhev: 64-bit PCI bars may overlap hotplugged memory and vice verse) - -* Thu Sep 03 2015 Miroslav Rezanina - rhev-2.3.0-22.el7 -- kvm-mirror-Fix-coroutine-reentrance.patch [bz#1251487] -- kvm-RHEL-Set-vcpus-hard-limit-to-240-for-Power.patch [bz#1257781] -- kvm-provide-vhost-module-config-file-with-max_mem_region.patch [bz#1255349] -- Resolves: bz#1251487 - (qemu core dump when do drive mirror) -- Resolves: bz#1255349 - (vhost: default value of 'max_mem_regions' should be set larger(>=260) than 64) -- Resolves: bz#1257781 - (The prompt is confusing when boot a guest with larger vcpu number than host physical cpu) - -* Fri Aug 28 2015 Miroslav Rezanina - rhev-2.3.0-21.el7 -- kvm-vnc-fix-memory-corruption-CVE-2015-5225.patch [bz#1255898] -- Resolves: bz#1255898 - (CVE-2015-5225 qemu-kvm-rhev: Qemu: ui: vnc: heap memory corruption in vnc_refresh_server_surface [rhel-7.2]) - -* Thu Aug 27 2015 Yash Mankad - rhev-2.3.0-20.el7 -- kvm-pseries-define-coldplugged-devices-as-configured.patch [bz#1243721] -- kvm-spice-fix-spice_chr_add_watch-pre-condition.patch [bz#1128992] -- Resolves: bz#1128992 - (Spiceport character device is not reliable caused domain shutoff) -- Resolves: bz#1243721 - (After hotunpug virtio device, the device still exist in pci info) - -* Mon Aug 24 2015 Miroslav Rezanina - rhev-2.3.0-19.el7 -- kvm-ppc-add-helpful-message-when-KVM-fails-to-start-VCPU.patch [bz#1215618] -- kvm-pci-allow-0-address-for-PCI-IO-MEM-regions.patch [bz#1241886] -- kvm-RHEL-Suppress-scary-but-unimportant-errors-for-KVM-V.patch [bz#1237034] -- Resolves: bz#1215618 - (Unhelpful error message on Power when SMT is enabled) -- Resolves: bz#1237034 - (Error prompt while booting with vfio-pci device) -- Resolves: bz#1241886 - (hot plugged pci devices won't appear unless reboot) - -* Fri Aug 14 2015 Miroslav Rezanina - rhev-2.3.0-18.el7 -- kvm-vhost-correctly-pass-error-to-caller-in-vhost_dev_en.patch [bz#1248312] -- kvm-Revert-virtio-net-enable-virtio-1.0.patch [bz#1248312] -- kvm-virtio-net-unbreak-any-layout.patch [bz#1248312] -- kvm-virtio-hide-legacy-features-from-modern-guests.patch [bz#1248312] -- kvm-virtio-serial-fix-ANY_LAYOUT.patch [bz#1248312] -- kvm-virtio-9p-fix-any_layout.patch [bz#1248312] -- kvm-virtio-set-any_layout-in-virtio-core.patch [bz#1248312] -- kvm-virtio-pci-fix-memory-MR-cleanup-for-modern.patch [bz#1248312] -- kvm-virtio-get_features-can-fail.patch [bz#1248312] -- kvm-virtio-blk-fail-get_features-when-both-scsi-and-1.0-.patch [bz#1248312] -- kvm-virtio-minor-cleanup.patch [bz#1248312] -- kvm-memory-do-not-add-a-reference-to-the-owner-of-aliase.patch [bz#1248312] -- kvm-virtio-net-remove-virtio-queues-if-the-guest-doesn-t.patch [bz#1248312] -- kvm-virtio-fix-1.0-virtqueue-migration.patch [bz#1248312] -- kvm-Downstream-only-Start-kvm-setup-service-before-libvi.patch [bz#1251962] -- kvm-qcow2-Flush-pending-discards-before-allocating-clust.patch [bz#1226297] -- Resolves: bz#1226297 - (qcow2 crash during discard operation) -- Resolves: bz#1248312 - ("fdisk -l"can not output anything and the process status is D+ after migrating RHEL7.2 guest with virtio-1 virtio-scsi disk) -- Resolves: bz#1251962 - (kvm-setup.service should include Before=libvirtd.service) - -* Wed Aug 12 2015 Miroslav Rezanina - rhev-2.3.0-17.el7 -- kvm-migration-avoid-divide-by-zero-in-xbzrle-cache-miss-.patch [bz#580006] -- kvm-migration-move-ram-stuff-to-migration-ram.patch [bz#580006] -- kvm-migration-move-savevm.c-inside-migration.patch [bz#580006] -- kvm-migration-Add-myself-to-the-copyright-list-of-both-f.patch [bz#580006] -- kvm-migration-reduce-include-files.patch [bz#580006] -- kvm-migration-Remove-duplicated-assignment-of-SETUP-stat.patch [bz#580006] -- kvm-migration-create-savevm_state.patch [bz#580006] -- kvm-migration-Use-normal-VMStateDescriptions-for-Subsect.patch [bz#580006] -- kvm-Add-qemu_get_counted_string-to-read-a-string-prefixe.patch [bz#580006] -- kvm-runstate-Add-runstate-store.patch [bz#580006] -- kvm-runstate-migration-allows-more-transitions-now.patch [bz#580006] -- kvm-migration-create-new-section-to-store-global-state.patch [bz#580006] -- kvm-global_state-Make-section-optional.patch [bz#580006] -- kvm-vmstate-Create-optional-sections.patch [bz#580006] -- kvm-migration-Add-configuration-section.patch [bz#580006] -- kvm-migration-ensure-we-start-in-NONE-state.patch [bz#580006] -- kvm-migration-Use-always-helper-to-set-state.patch [bz#580006] -- kvm-migration-No-need-to-call-trace_migrate_set_state.patch [bz#580006] -- kvm-migration-create-migration-event.patch [bz#580006] -- kvm-migration-Make-events-a-capability.patch [bz#580006] -- kvm-migration-Add-migration-events-on-target-side.patch [bz#580006] -- kvm-migration-Only-change-state-after-migration-has-fini.patch [bz#580006] -- kvm-migration-Trace-event-and-migration-event-are-differ.patch [bz#580006] -- kvm-migration-Write-documetation-for-events-capabilites.patch [bz#580006] -- kvm-migration-Register-global-state-section-before-loadv.patch [bz#580006] -- kvm-migration-We-also-want-to-store-the-global-state-for.patch [bz#580006] -- kvm-block-mirror-limit-qiov-to-IOV_MAX-elements.patch [bz#1238585] -- kvm-i6300esb-fix-timer-overflow.patch [bz#1247893] -- Resolves: bz#1238585 - (drive-mirror has spurious failures with low 'granularity' values) -- Resolves: bz#1247893 - (qemu's i6300esb watchdog does not fire on time with large heartbeat like 2046) -- Resolves: bz#580006 - (QMP: A QMP event notification when migration finish.) - -* Fri Aug 07 2015 Miroslav Rezanina - rhev-2.3.0-16.el7 -- kvm-virtio-scsi-use-virtqueue_map_sg-when-loading-reques.patch [bz#1160169] -- kvm-scsi-disk-fix-cmd.mode-field-typo.patch [bz#1160169] -- kvm-target-i386-emulate-CPUID-level-of-real-hardware.patch [bz#1223317] -- kvm-target-i386-fix-IvyBridge-xlevel-in-PC_COMPAT_2_3.patch [bz#1223317] -- Resolves: bz#1160169 - (Segfault occurred at Dst VM while completed migration upon ENOSPC) -- Resolves: bz#1223317 - (BSod occurs When installing latest Windows Enterprise Insider 10 and windows server 2016 Preview) - -* Wed Aug 05 2015 Miroslav Rezanina - rhev-2.3.0-15.el7 -- kvm-usb-ccid-add-missing-wakeup-calls.patch [bz#1211970] -- kvm-vfio-pci-Fix-bootindex.patch [bz#1245127] -- kvm-acpi-fix-pvpanic-device-is-not-shown-in-ui.patch [bz#1238141] -- kvm-redhat-add-kvm-unit-tests-tarball-to-environment.patch [bz#1225980] -- kvm-spec-Build-tscdeadline_latency.flat-from-kvm-unit-te.patch [bz#1225980] -- Resolves: bz#1211970 - (smart card emulation doesn't work with USB3 (nec-xhci) controller) -- Resolves: bz#1225980 - (Package tscdeadline_latency.flat with qemu-kvm-rhev) -- Resolves: bz#1238141 - ([virtio-win][pvpanic]win10-32 guest can not detect pvpanic device in device manager) -- Resolves: bz#1245127 - (bootindex doesn't work for vfio-pci) - -* Fri Jul 31 2015 Miroslav Rezanina - rhev-2.3.0-14.el7 -- kvm-rtl8139-avoid-nested-ifs-in-IP-header-parsing-CVE-20.patch [bz#1248768] -- kvm-rtl8139-drop-tautologous-if-ip-.-statement-CVE-2015-.patch [bz#1248768] -- kvm-rtl8139-skip-offload-on-short-Ethernet-IP-header-CVE.patch [bz#1248768] -- kvm-rtl8139-check-IP-Header-Length-field-CVE-2015-5165.patch [bz#1248768] -- kvm-rtl8139-check-IP-Total-Length-field-CVE-2015-5165.patch [bz#1248768] -- kvm-rtl8139-skip-offload-on-short-TCP-header-CVE-2015-51.patch [bz#1248768] -- kvm-rtl8139-check-TCP-Data-Offset-field-CVE-2015-5165.patch [bz#1248768] -- Resolves: bz#1248768 - (EMBARGOED CVE-2015-5165 qemu-kvm-rhev: Qemu: rtl8139 uninitialized heap memory information leakage to guest [rhel-7.2]) - -* Fri Jul 24 2015 Miroslav Rezanina - rhev-2.3.0-13.el7 -- kvm-block-Add-bdrv_get_block_status_above.patch [bz#1242316] -- kvm-qmp-Add-optional-bool-unmap-to-drive-mirror.patch [bz#1242316] -- kvm-mirror-Do-zero-write-on-target-if-sectors-not-alloca.patch [bz#1242316] -- kvm-block-Fix-dirty-bitmap-in-bdrv_co_discard.patch [bz#1242316] -- kvm-block-Remove-bdrv_reset_dirty.patch [bz#1242316] -- kvm-iotests-add-QMP-event-waiting-queue.patch [bz#1242316] -- kvm-qemu-iotests-Make-block-job-methods-common.patch [bz#1242316] -- kvm-qemu-iotests-Add-test-case-for-mirror-with-unmap.patch [bz#1242316] -- kvm-iotests-Use-event_wait-in-wait_ready.patch [bz#1242316] -- kvm-rdma-fix-memory-leak.patch [bz#1210715] -- kvm-Only-try-and-read-a-VMDescription-if-it-should-be-th.patch [bz#1210715] -- kvm-qemu_ram_foreach_block-pass-up-error-value-and-down-.patch [bz#1210715] -- kvm-rdma-Fix-qemu-crash-when-IPv6-address-is-used-for-mi.patch [bz#1210715] -- kvm-Rename-RDMA-structures-to-make-destination-clear.patch [bz#1210715] -- kvm-Remove-unneeded-memset.patch [bz#1210715] -- kvm-rdma-typos.patch [bz#1210715] -- kvm-Store-block-name-in-local-blocks-structure.patch [bz#1210715] -- kvm-Translate-offsets-to-destination-address-space.patch [bz#1210715] -- kvm-Rework-ram_control_load_hook-to-hook-during-block-lo.patch [bz#1210715] -- kvm-Allow-rdma_delete_block-to-work-without-the-hash.patch [bz#1210715] -- kvm-Rework-ram-block-hash.patch [bz#1210715] -- kvm-Sort-destination-RAMBlocks-to-be-the-same-as-the-sou.patch [bz#1210715] -- kvm-Sanity-check-RDMA-remote-data.patch [bz#1210715] -- kvm-Fail-more-cleanly-in-mismatched-RAM-cases.patch [bz#1210715] -- kvm-migration-Use-cmpxchg-correctly.patch [bz#1210715] -- kvm-RDMA-Fix-error-exits-for-2.4.patch [bz#1210715] -- kvm-block-mirror-Sleep-periodically-during-bitmap-scanni.patch [bz#1233826] -- kvm-block-curl-Don-t-lose-original-error-when-a-connecti.patch [bz#1235813] -- kvm-vfio-pci-Add-pba_offset-PCI-quirk-for-Chelsio-T5-dev.patch [bz#1244348] -- kvm-hostmem-Fix-qemu_opt_get_bool-crash-in-host_memory_b.patch [bz#1237220] -- kvm-pc-pc-dimm-Extract-hotplug-related-fields-in-PCMachi.patch [bz#1211117] -- kvm-pc-pc-dimm-Factor-out-reusable-parts-in-pc_dimm_plug.patch [bz#1211117] -- kvm-pc-Abort-if-HotplugHandlerClass-plug-fails.patch [bz#1211117] -- kvm-numa-pc-dimm-Store-pc-dimm-memory-information-in-num.patch [bz#1211117] -- kvm-numa-Store-boot-memory-address-range-in-node_info.patch [bz#1211117] -- kvm-numa-API-to-lookup-NUMA-node-by-address.patch [bz#1211117] -- kvm-docs-add-sPAPR-hotplug-dynamic-reconfiguration-docum.patch [bz#1211117] -- kvm-machine-add-default_ram_size-to-machine-class.patch [bz#1211117] -- kvm-spapr-override-default-ram-size-to-512MB.patch [bz#1211117] -- kvm-spapr_pci-Make-find_phb-find_dev-public.patch [bz#1211117] -- kvm-spapr-Merge-sPAPREnvironment-into-sPAPRMachineState.patch [bz#1211117] -- kvm-spapr-Remove-obsolete-ram_limit-field-from-sPAPRMach.patch [bz#1211117] -- kvm-spapr-Remove-obsolete-entry_point-field-from-sPAPRMa.patch [bz#1211117] -- kvm-spapr-Add-sPAPRMachineClass.patch [bz#1211117] -- kvm-spapr-ensure-we-have-at-least-one-XICS-server.patch [bz#1211117] -- kvm-spapr-Consider-max_cpus-during-xics-initialization.patch [bz#1211117] -- kvm-spapr-Support-ibm-lrdr-capacity-device-tree-property.patch [bz#1211117] -- kvm-cpus-Add-a-macro-to-walk-CPUs-in-reverse.patch [bz#1211117] -- kvm-spapr-Reorganize-CPU-dt-generation-code.patch [bz#1211117] -- kvm-spapr-Consolidate-cpu-init-code-into-a-routine.patch [bz#1211117] -- kvm-ppc-Update-cpu_model-in-MachineState.patch [bz#1211117] -- kvm-xics_kvm-Don-t-enable-KVM_CAP_IRQ_XICS-if-already-en.patch [bz#1211117] -- kvm-spapr-Initialize-hotplug-memory-address-space.patch [bz#1211117] -- kvm-spapr-Add-LMB-DR-connectors.patch [bz#1211117] -- kvm-spapr-Support-ibm-dynamic-reconfiguration-memory.patch [bz#1211117] -- kvm-spapr-Make-hash-table-size-a-factor-of-maxram_size.patch [bz#1211117] -- kvm-spapr-Memory-hotplug-support.patch [bz#1211117] -- kvm-spapr-Don-t-allow-memory-hotplug-to-memory-less-node.patch [bz#1211117] -- Resolves: bz#1210715 - (migration/rdma: 7.1->7.2: RDMA ERROR: ram blocks mismatch #3!) -- Resolves: bz#1211117 - (add support for memory hotplug on Power) -- Resolves: bz#1233826 - (issueing drive-mirror command causes monitor unresponsive) -- Resolves: bz#1235813 - (block/curl: Fix generic "Input/output error" on failure) -- Resolves: bz#1237220 - (Fail to create NUMA guest with ) -- Resolves: bz#1242316 - (Add "unmap" support for drive-mirror) -- Resolves: bz#1244348 - (Quirk for Chelsio T5 MSI-X PBA) - -* Fri Jul 17 2015 Miroslav Rezanina - rhev-2.3.0-12.el7 -- kvm-ide-Check-array-bounds-before-writing-to-io_buffer-C.patch [bz#1243692] -- kvm-ide-atapi-Fix-START-STOP-UNIT-command-completion.patch [bz#1243692] -- kvm-ide-Clear-DRQ-after-handling-all-expected-accesses.patch [bz#1243692] -- Resolves: bz#1243692 - () - -* Fri Jul 17 2015 Miroslav Rezanina - rhev-2.3.0-11.el7 -- kvm-hw-acpi-acpi_pm1_cnt_init-take-disable_s3-and-disabl.patch [bz#1204696] -- kvm-hw-acpi-move-etc-system-states-fw_cfg-file-from-PIIX.patch [bz#1204696] -- kvm-hw-acpi-piix4_pm_init-take-fw_cfg-object-no-more.patch [bz#1204696] -- kvm-i386-pc-pc_basic_device_init-delegate-FDC-creation-r.patch [bz#1227282] -- kvm-i386-pc-drive-if-floppy-should-imply-a-board-default.patch [bz#1227282] -- kvm-i386-pc_q35-don-t-insist-on-board-FDC-if-there-s-no-.patch [bz#1227282] -- kvm-i386-drop-FDC-in-pc-q35-rhel7.2.0-if-neither-it-nor-.patch [bz#1227282] -- kvm-hw-i386-pc-factor-out-pc_cmos_init_floppy.patch [bz#1227282] -- kvm-hw-i386-pc-reflect-any-FDC-ioport-0x3f0-in-the-CMOS.patch [bz#1227282] -- kvm-hw-i386-pc-don-t-carry-FDC-from-pc_basic_device_init.patch [bz#1227282] -- kvm-Fix-reported-machine-type.patch [bz#1241331] -- kvm-i386-acpi-build-more-traditional-_UID-and-_HID-for-P.patch [bz#1242479] -- kvm-i386-acpi-build-fix-PXB-workarounds-for-unsupported-.patch [bz#1242479] -- kvm-hw-core-rebase-sysbus_get_fw_dev_path-to-g_strdup_pr.patch [bz#1242479] -- kvm-migration-introduce-VMSTATE_BUFFER_UNSAFE_INFO_TEST.patch [bz#1242479] -- kvm-hw-pci-bridge-expose-_test-parameter-in-SHPC_VMSTATE.patch [bz#1242479] -- kvm-hw-pci-bridge-add-macro-for-chassis_nr-property.patch [bz#1242479] -- kvm-hw-pci-bridge-add-macro-for-msi-property.patch [bz#1242479] -- kvm-hw-pci-introduce-shpc_present-helper-function.patch [bz#1242479] -- kvm-hw-pci-bridge-introduce-shpc-property.patch [bz#1242479] -- kvm-hw-pci-bridge-disable-SHPC-in-PXB.patch [bz#1242479] -- kvm-hw-core-explicit-OFW-unit-address-callback-for-SysBu.patch [bz#1242479] -- kvm-hw-pci-bridge-format-special-OFW-unit-address-for-PX.patch [bz#1242479] -- Resolves: bz#1204696 - (Expose PM system states in fw_cfg file on Q35) -- Resolves: bz#1227282 - (tighten conditions for board-implied FDC in pc-q35-rhel7.2.0+) -- Resolves: bz#1241331 - (Machine type reported by guest is different with that in RHEL.7.1 GA version) -- Resolves: bz#1242479 - (backport QEMU changes needed for supporting multiple PCI root buses with OVMF) - -* Tue Jul 14 2015 Miroslav Rezanina - rhev-2.3.0-10.el7 -- kvm-Disable-Educational-device.patch [bz#1194151] -- kvm-Disable-sdhci-device.patch [bz#1194151] -- kvm-Mark-onboard-devices-as-cannot_instantiate_with_devi.patch [bz#1194151] -- kvm-target-arm-Add-GIC-phandle-to-VirtBoardInfo.patch [bz#1231929] -- kvm-arm_gicv2m-Add-GICv2m-widget-to-support-MSIs.patch [bz#1231929] -- kvm-target-arm-Extend-the-gic-node-properties.patch [bz#1231929] -- kvm-target-arm-Add-the-GICv2m-to-the-virt-board.patch [bz#1231929] -- kvm-introduce-kvm_arch_msi_data_to_gsi.patch [bz#1231929] -- kvm-arm_gicv2m-set-kvm_gsi_direct_mapping-and-kvm_msi_vi.patch [bz#1231929] -- kvm-hw-arm-virt-acpi-build-Fix-table-revision-and-some-c.patch [bz#1231929] -- kvm-hw-arm-virt-acpi-build-Add-GICv2m-description-in-ACP.patch [bz#1231929] -- Resolves: bz#1194151 - (Rebase to qemu 2.3) -- Resolves: bz#1231929 - (AArch64: backport MSI support (gicv2m)) - -* Thu Jul 09 2015 Miroslav Rezanina - rhev-2.3.0-9.el7 -- kvm-acpi-add-a-missing-backslash-to-the-_SB-scope.patch [bz#1103313] -- kvm-range-remove-useless-inclusions.patch [bz#1103313] -- kvm-acpi-Simplify-printing-to-dynamic-string.patch [bz#1103313] -- kvm-acpi-add-aml_add-term.patch [bz#1103313] -- kvm-acpi-add-aml_lless-term.patch [bz#1103313] -- kvm-acpi-add-aml_index-term.patch [bz#1103313] -- kvm-acpi-add-aml_shiftleft-term.patch [bz#1103313] -- kvm-acpi-add-aml_shiftright-term.patch [bz#1103313] -- kvm-acpi-add-aml_increment-term.patch [bz#1103313] -- kvm-acpi-add-aml_while-term.patch [bz#1103313] -- kvm-acpi-add-implementation-of-aml_while-term.patch [bz#1103313] -- kvm-hw-pci-made-pci_bus_is_root-a-PCIBusClass-method.patch [bz#1103313] -- kvm-hw-pci-made-pci_bus_num-a-PCIBusClass-method.patch [bz#1103313] -- kvm-hw-i386-query-only-for-q35-pc-when-looking-for-pci-h.patch [bz#1103313] -- kvm-hw-pci-extend-PCI-config-access-to-support-devices-b.patch [bz#1103313] -- kvm-hw-acpi-add-support-for-i440fx-snooping-root-busses.patch [bz#1103313] -- kvm-hw-apci-add-_PRT-method-for-extra-PCI-root-busses.patch [bz#1103313] -- kvm-hw-acpi-add-_CRS-method-for-extra-root-busses.patch [bz#1103313] -- kvm-hw-acpi-remove-from-root-bus-0-the-crs-resources-use.patch [bz#1103313] -- kvm-hw-pci-removed-rootbus-nr-is-0-assumption-from-qmp_p.patch [bz#1103313] -- kvm-hw-pci-introduce-PCI-Expander-Bridge-PXB.patch [bz#1103313] -- kvm-hw-pci-inform-bios-if-the-system-has-extra-pci-root-.patch [bz#1103313] -- kvm-hw-pxb-add-map_irq-func.patch [bz#1103313] -- kvm-hw-pci-add-support-for-NUMA-nodes.patch [bz#1103313] -- kvm-hw-pxb-add-numa_node-parameter.patch [bz#1103313] -- kvm-apci-fix-PXB-behaviour-if-used-with-unsupported-BIOS.patch [bz#1103313] -- kvm-docs-Add-PXB-documentation.patch [bz#1103313] -- kvm-sPAPR-Don-t-enable-EEH-on-emulated-PCI-devices.patch [bz#1213681] -- kvm-sPAPR-Reenable-EEH-functionality-on-reboot.patch [bz#1213681] -- kvm-sPAPR-Clear-stale-MSIx-table-during-EEH-reset.patch [bz#1213681] -- kvm-configure-Add-support-for-tcmalloc.patch [bz#1213882] -- Resolves: bz#1103313 - (RFE: configure guest NUMA node locality for guest PCI devices) -- Resolves: bz#1213681 - (PAPR PCI-e EEH (Enhanced Error Handling) for KVM/Power guests with VFIO devices (qemu)) -- Resolves: bz#1213882 - (enable using tcmalloc for memory allocation in qemu-kvm-rhev) - -* Wed Jul 08 2015 Miroslav Rezanina - rhev-2.3.0-8.el7 -- kvm-block-Fix-NULL-deference-for-unaligned-write-if-qiov.patch [bz#1207034] -- kvm-qemu-iotests-Test-unaligned-sub-block-zero-write.patch [bz#1207034] -- kvm-spapr_drc-initial-implementation-of-sPAPRDRConnector.patch [bz#1172478] -- kvm-spapr_rtas-add-get-set-power-level-RTAS-interfaces.patch [bz#1172478] -- kvm-spapr_rtas-add-set-indicator-RTAS-interface.patch [bz#1172478] -- kvm-spapr_rtas-add-get-sensor-state-RTAS-interface.patch [bz#1172478] -- kvm-spapr-add-rtas_st_buffer_direct-helper.patch [bz#1172478] -- kvm-spapr_rtas-add-ibm-configure-connector-RTAS-interfac.patch [bz#1172478] -- kvm-spapr_events-re-use-EPOW-event-infrastructure-for-ho.patch [bz#1172478] -- kvm-spapr_events-event-scan-RTAS-interface.patch [bz#1172478] -- kvm-spapr_drc-add-spapr_drc_populate_dt.patch [bz#1172478] -- kvm-spapr_pci-add-dynamic-reconfiguration-option-for-spa.patch [bz#1172478] -- kvm-spapr_pci-create-DRConnectors-for-each-PCI-slot-duri.patch [bz#1172478] -- kvm-pci-make-pci_bar-useable-outside-pci.c.patch [bz#1172478] -- kvm-spapr_pci-enable-basic-hotplug-operations.patch [bz#1172478] -- kvm-spapr_pci-emit-hotplug-add-remove-events-during-hotp.patch [bz#1172478] -- kvm-Print-error-when-failing-to-load-PCI-config-data.patch [bz#1209793] -- kvm-Fix-ich9-intel-hda-compatibility.patch [bz#1209793] -- kvm-pseries-Enable-in-kernel-H_LOGICAL_CI_-LOAD-STORE-im.patch [bz#1217277] -- kvm-Split-serial-isa-into-its-own-config-option.patch [bz#1191845] -- kvm-rhel-Disable-info-irq-and-info-pic-for-Power.patch [bz#1191845] -- kvm-RHEL-Disable-remaining-unsupported-devices-for-ppc.patch [bz#1191845] -- kvm-linux-headers-sync-vhost.h.patch [bz#1225715] -- kvm-virtio-introduce-virtio_legacy_is_cross_endian.patch [bz#1225715] -- kvm-vhost-set-vring-endianness-for-legacy-virtio.patch [bz#1225715] -- kvm-tap-add-VNET_LE-VNET_BE-operations.patch [bz#1225715] -- kvm-tap-fix-non-linux-build.patch [bz#1225715] -- kvm-vhost-net-tell-tap-backend-about-the-vnet-endianness.patch [bz#1225715] -- kvm-vhost_net-re-enable-when-cross-endian.patch [bz#1225715] -- kvm-linux-headers-update.patch [bz#1227343] -- kvm-virtio-input-add-linux-input.h.patch [bz#1227343] -- kvm-virtio-input-core-code-base-class-device.patch [bz#1227343] -- kvm-virtio-input-emulated-devices-device.patch [bz#1227343] -- kvm-virtio-net-Move-DEFINE_VIRTIO_NET_FEATURES-to-virtio.patch [bz#1227343] -- kvm-virtio-scsi-Move-DEFINE_VIRTIO_SCSI_FEATURES-to-virt.patch [bz#1227343] -- kvm-memory-Define-API-for-MemoryRegionOps-to-take-attrs-.patch [bz#1227343] -- kvm-memory-Replace-io_mem_read-write-with-memory_region_.patch [bz#1227343] -- kvm-Make-CPU-iotlb-a-structure-rather-than-a-plain-hwadd.patch [bz#1227343] -- kvm-Add-MemTxAttrs-to-the-IOTLB.patch [bz#1227343] -- kvm-exec.c-Convert-subpage-memory-ops-to-_with_attrs.patch [bz#1227343] -- kvm-exec.c-Make-address_space_rw-take-transaction-attrib.patch [bz#1227343] -- kvm-exec.c-Add-new-address_space_ld-st-functions.patch [bz#1227343] -- kvm-Switch-non-CPU-callers-from-ld-st-_phys-to-address_s.patch [bz#1227343] -- kvm-s390-virtio-sort-into-categories.patch [bz#1227343] -- kvm-s390-virtio-use-common-features.patch [bz#1227343] -- kvm-virtio-move-host_features.patch [bz#1227343] -- kvm-virtio-ccw-Don-t-advertise-VIRTIO_F_BAD_FEATURE.patch [bz#1227343] -- kvm-virtio-move-VIRTIO_F_NOTIFY_ON_EMPTY-into-core.patch [bz#1227343] -- kvm-qdev-add-64bit-properties.patch [bz#1227343] -- kvm-virtio-make-features-64bit-wide.patch [bz#1227343] -- kvm-virtio-input-const_le16-and-const_le32-not-build-tim.patch [bz#1227343] -- kvm-virtio-input-make-virtio-devices-follow-usual-naming.patch [bz#1227343] -- kvm-virtio-64bit-features-fixups.patch [bz#1227343] -- kvm-virtio-endianness-checks-for-virtio-1.0-devices.patch [bz#1227343] -- kvm-virtio-allow-virtio-1-queue-layout.patch [bz#1227343] -- kvm-virtio-disallow-late-feature-changes-for-virtio-1.patch [bz#1227343] -- kvm-virtio-allow-to-fail-setting-status.patch [bz#1227343] -- kvm-virtio-net-no-writeable-mac-for-virtio-1.patch [bz#1227343] -- kvm-virtio-net-support-longer-header.patch [bz#1227343] -- kvm-virtio-net-enable-virtio-1.0.patch [bz#1227343] -- kvm-vhost_net-add-version_1-feature.patch [bz#1227343] -- kvm-vhost-64-bit-features.patch [bz#1227343] -- kvm-linux-headers-add-virtio_pci.patch [bz#1227343] -- kvm-virtio-pci-initial-virtio-1.0-support.patch [bz#1227343] -- kvm-virtio-generation-counter-support.patch [bz#1227343] -- kvm-virtio-add-modern-config-accessors.patch [bz#1227343] -- kvm-virtio-pci-switch-to-modern-accessors-for-1.0.patch [bz#1227343] -- kvm-virtio-pci-add-flags-to-enable-disable-legacy-modern.patch [bz#1227343] -- kvm-virtio-pci-make-QEMU_VIRTIO_PCI_QUEUE_MEM_MULT-small.patch [bz#1227343] -- kvm-virtio-pci-change-document-virtio-pci-bar-layout.patch [bz#1227343] -- kvm-virtio-pci-make-modern-bar-64bit-prefetchable.patch [bz#1227343] -- kvm-virtio-pci-correctly-set-host-notifiers-for-modern-b.patch [bz#1227343] -- kvm-virtio_balloon-header-update.patch [bz#1227343] -- kvm-virtio-balloon-switch-to-virtio_add_feature.patch [bz#1227343] -- kvm-virtio-pci-add-struct-VirtIOPCIRegion-for-virtio-1-r.patch [bz#1227343] -- kvm-virtio-pci-add-virtio_pci_modern_regions_init.patch [bz#1227343] -- kvm-virtio-pci-add-virtio_pci_modern_region_map.patch [bz#1227343] -- kvm-virtio-pci-move-virtio_pci_add_mem_cap-call-to-virti.patch [bz#1227343] -- kvm-virtio-pci-move-cap-type-to-VirtIOPCIRegion.patch [bz#1227343] -- kvm-virtio-pci-drop-identical-virtio_pci_cap.patch [bz#1227343] -- kvm-virtio-pci-fill-VirtIOPCIRegions-early.patch [bz#1227343] -- kvm-pci-add-PCI_CLASS_INPUT_.patch [bz#1227343] -- kvm-virtio-input-core-code-base-class-pci.patch [bz#1227343] -- kvm-virtio-input-emulated-devices-pci.patch [bz#1227343] -- kvm-virtio-net-move-qdev-properties-into-virtio-net.c.patch [bz#1227343] -- kvm-virtio-net.h-Remove-unsed-DEFINE_VIRTIO_NET_PROPERTI.patch [bz#1227343] -- kvm-virtio-scsi-move-qdev-properties-into-virtio-scsi.c.patch [bz#1227343] -- kvm-virtio-rng-move-qdev-properties-into-virtio-rng.c.patch [bz#1227343] -- kvm-virtio-serial-bus-move-qdev-properties-into-virtio-s.patch [bz#1227343] -- kvm-virtio-9p-device-move-qdev-properties-into-virtio-9p.patch [bz#1227343] -- kvm-vhost-scsi-move-qdev-properties-into-vhost-scsi.c.patch [bz#1227343] -- kvm-virito-pci-fix-OVERRUN-problem.patch [bz#1227343] -- kvm-virtio-input-move-properties-use-virtio_instance_ini.patch [bz#1227343] -- kvm-virtio-input-evdev-passthrough.patch [bz#1227343] -- kvm-Add-MAINTAINERS-entry-for-virtio-input.patch [bz#1227343] -- kvm-virtio-input-add-input-routing-support.patch [bz#1227343] -- kvm-dataplane-fix-cross-endian-issues.patch [bz#1227343] -- kvm-aarch64-allow-enable-seccomp.patch [bz#1174861] -- kvm-aarch64-redhat-spec-enable-seccomp.patch [bz#1174861] -- kvm-rhel-Update-package-version-for-SLOF-dependency.patch [bz#1236447] -- Resolves: bz#1172478 - (add support for PCI hotplugging) -- Resolves: bz#1174861 - (use seccomp) -- Resolves: bz#1191845 - ([PowerKVM] There are some unsupported x86 devices under the output of cmds 'man qemu-kvm' and '/usr/libexec/qemu-kvm -device help') -- Resolves: bz#1207034 - (QEMU segfault when doing unaligned zero write to non-512 disk) -- Resolves: bz#1209793 - (migration: 7.1->7.2 error while loading state for instance 0x0 of device '0000:00:04.0/intel-hda') -- Resolves: bz#1217277 - (Enable KVM implementation of H_LOGICAL_CI_{LOAD,STORE}) -- Resolves: bz#1225715 - (Enable cross-endian vhost devices) -- Resolves: bz#1227343 - ([virtio-1] QEMU Virtio-1 Support) -- Resolves: bz#1236447 - (Update qemu-kvm-rhev package for new SLOF) - -* Thu Jul 02 2015 Miroslav Rezanina - rhev-2.3.0-7.el7 -- kvm-docs-update-documentation-for-memory-hot-unplug.patch [bz#1120706] -- kvm-acpi-mem-hotplug-add-acpi_memory_slot_status-to-get-.patch [bz#1120706] -- kvm-acpi-mem-hotplug-add-unplug-request-cb-for-memory-de.patch [bz#1120706] -- kvm-acpi-mem-hotplug-add-unplug-cb-for-memory-device.patch [bz#1120706] -- kvm-acpi-extend-aml_field-to-support-UpdateRule.patch [bz#1120706] -- kvm-acpi-fix-Memory-device-control-fields-register.patch [bz#1120706] -- kvm-acpi-add-hardware-implementation-for-memory-hot-unpl.patch [bz#1120706] -- kvm-qmp-event-add-event-notification-for-memory-hot-unpl.patch [bz#1120706] -- kvm-hw-acpi-aml-build-Fix-memory-leak.patch [bz#1120706] -- kvm-memory-add-memory_region_ram_resize.patch [bz#1231719] -- kvm-acpi-build-remove-dependency-from-ram_addr.h.patch [bz#1231719] -- kvm-hw-i386-Move-ACPI-header-definitions-in-an-arch-inde.patch [bz#1231719] -- kvm-hw-i386-acpi-build-move-generic-acpi-building-helper.patch [bz#1231719] -- kvm-hw-acpi-aml-build-Make-enum-values-to-be-upper-case-.patch [bz#1231719] -- kvm-hw-arm-virt-Move-common-definitions-to-virt.h.patch [bz#1231719] -- kvm-hw-arm-virt-Record-PCIe-ranges-in-MemMapEntry-array.patch [bz#1231719] -- kvm-hw-arm-virt-acpi-build-Basic-framework-for-building-.patch [bz#1231719] -- kvm-hw-acpi-aml-build-Add-aml_memory32_fixed-term.patch [bz#1231719] -- kvm-hw-acpi-aml-build-Add-aml_interrupt-term.patch [bz#1231719] -- kvm-hw-arm-virt-acpi-build-Generation-of-DSDT-table-for-.patch [bz#1231719] -- kvm-hw-arm-virt-acpi-build-Generate-FADT-table-and-updat.patch [bz#1231719] -- kvm-hw-arm-virt-acpi-build-Generate-MADT-table.patch [bz#1231719] -- kvm-hw-arm-virt-acpi-build-Generate-GTDT-table.patch [bz#1231719] -- kvm-hw-arm-virt-acpi-build-Generate-RSDT-table.patch [bz#1231719] -- kvm-hw-arm-virt-acpi-build-Generate-RSDP-table.patch [bz#1231719] -- kvm-hw-arm-virt-acpi-build-Generate-MCFG-table.patch [bz#1231719] -- kvm-hw-acpi-aml-build-Make-aml_buffer-definition-consist.patch [bz#1231719] -- kvm-hw-acpi-aml-build-Add-ToUUID-macro.patch [bz#1231719] -- kvm-hw-acpi-aml-build-Add-aml_or-term.patch [bz#1231719] -- kvm-hw-acpi-aml-build-Add-aml_lnot-term.patch [bz#1231719] -- kvm-hw-acpi-aml-build-Add-aml_else-term.patch [bz#1231719] -- kvm-hw-acpi-aml-build-Add-aml_create_dword_field-term.patch [bz#1231719] -- kvm-hw-acpi-aml-build-Add-aml_dword_io-term.patch [bz#1231719] -- kvm-hw-acpi-aml-build-Add-Unicode-macro.patch [bz#1231719] -- kvm-hw-arm-virt-acpi-build-Add-PCIe-controller-in-ACPI-D.patch [bz#1231719] -- kvm-ACPI-split-CONFIG_ACPI-into-4-pieces.patch [bz#1231719] -- kvm-hw-arm-virt-Enable-dynamic-generation-of-ACPI-v5.1-t.patch [bz#1231719] -- kvm-ACPI-Add-definitions-for-the-SPCR-table.patch [bz#1231719] -- kvm-hw-arm-virt-acpi-build-Add-SPCR-table.patch [bz#1231719] -- kvm-AArch64-Enable-ACPI.patch [bz#1231719] -- kvm-i8254-fix-out-of-bounds-memory-access-in-pit_ioport_.patch [bz#1229647] -- kvm-hw-q35-fix-floppy-controller-definition-in-ich9.patch [bz#894956] -- kvm-Migration-compat-for-pckbd.patch [bz#1215092] -- kvm-Migration-compat-for-fdc.patch [bz#1215091] -- Resolves: bz#1120706 - (Support dynamic virtual Memory deallocation - qemu-kvm) -- Resolves: bz#1215091 - (migration: 7.2->earlier; floppy compatibility) -- Resolves: bz#1215092 - (migration: 7.2->earlier: pckbd compatibility) -- Resolves: bz#1229647 - (CVE-2015-3214 qemu-kvm-rhev: qemu: i8254: out-of-bounds memory access in pit_ioport_read function [rhel-7.2]) -- Resolves: bz#1231719 - (AArch64: backport ACPI support) -- Resolves: bz#894956 - (floppy can not be recognized by Windows guest (q35)) - -* Fri Jun 26 2015 Miroslav Rezanina - rhev-2.3.0-6.el7 -- kvm-vfio-pci-Fix-error-path-sign.patch [bz#1219090] -- kvm-vfio-pci-Further-fix-BAR-size-overflow.patch [bz#1219090] -- kvm-Add-flag-for-pre-2.2-migration-compatibility.patch [bz#1215087] -- kvm-Serial-Migration-compatibility-pre-2.2-7.2.patch [bz#1215087] -- kvm-Migration-compat-for-mc146818rtc-irq_reinject_on_ack.patch [bz#1215088] -- Resolves: bz#1215087 - (migration: 7.2->earlier; serial compatibility) -- Resolves: bz#1215088 - (migration: 7.2->earlier; mc146818rtc compatibility) -- Resolves: bz#1219090 - (vfio-pci - post QEMU2.3 fixes, error sign + BAR overflow) - -* Wed Jun 24 2015 Miroslav Rezanina - rhev-2.3.0-5.el7 -- kvm-atomics-add-explicit-compiler-fence-in-__atomic-memo.patch [bz#1231335] -- kvm-pc-acpi-fix-pvpanic-for-buggy-guests.patch [bz#1221943] -- Resolves: bz#1221943 - (On_crash events didn't work when using guest's pvpanic device) -- Resolves: bz#1231335 - ([abrt] qemu-kvm: bdrv_error_action(): qemu-kvm killed by SIGABRT) - -* Mon Jun 22 2015 Miroslav Rezanina - rhev-2.3.0-4.el7 -- kvm-virtio-ccw-using-VIRTIO_NO_VECTOR-instead-of-0-for-i.patch [bz#1231610] -- kvm-virtio-ccw-sort-into-categories.patch [bz#1231610] -- kvm-virtio-ccw-change-realization-sequence.patch [bz#1231610] -- kvm-virtio-ccw-implement-device_plugged.patch [bz#1231610] -- kvm-virtio-net-fix-the-upper-bound-when-trying-to-delete.patch [bz#1231610] -- kvm-monitor-replace-the-magic-number-255-with-MAX_QUEUE_.patch [bz#1231610] -- kvm-monitor-check-return-value-of-qemu_find_net_clients_.patch [bz#1231610] -- kvm-virtio-introduce-vector-to-virtqueues-mapping.patch [bz#1231610] -- kvm-virtio-pci-speedup-MSI-X-masking-and-unmasking.patch [bz#1231610] -- kvm-pci-remove-hard-coded-bar-size-in-msix_init_exclusiv.patch [bz#1231610] -- kvm-virtio-net-adding-all-queues-in-.realize.patch [bz#1231610] -- kvm-virtio-device_plugged-can-fail.patch [bz#1231610] -- kvm-virtio-introduce-virtio_get_num_queues.patch [bz#1231610] -- kvm-virtio-ccw-introduce-ccw-specific-queue-limit.patch [bz#1231610] -- kvm-virtio-ccw-validate-the-number-of-queues-against-bus.patch [bz#1231610] -- kvm-virtio-s390-introduce-virito-s390-queue-limit.patch [bz#1231610] -- kvm-virtio-s390-introduce-virtio_s390_device_plugged.patch [bz#1231610] -- kvm-virtio-rename-VIRTIO_PCI_QUEUE_MAX-to-VIRTIO_QUEUE_M.patch [bz#1231610] -- kvm-virtio-increase-the-queue-limit-to-1024.patch [bz#1231610] -- kvm-virtio-pci-don-t-try-to-mask-or-unmask-vqs-without-n.patch [bz#1231610] -- Resolves: bz#1231610 - (Support more virtio queues) - -* Fri Jun 19 2015 Miroslav Rezanina - rhev-2.3.0-3.el7 -- kvm-vmdk-Fix-overflow-if-l1_size-is-0x20000000.patch [bz#1226809] -- kvm-Downstream-only-Add-rhel7.2.0-machine-type.patch [bz#1228574] -- kvm-spice-display-fix-segfault-in-qemu_spice_create_upda.patch [bz#1230550] -- kvm-pc-dimm-don-t-assert-if-pc-dimm-alignment-hotpluggab.patch [bz#1221425] -- kvm-Strip-brackets-from-vnc-host.patch [bz#1229073] -- kvm-qcow2-Set-MIN_L2_CACHE_SIZE-to-2.patch [bz#1226996] -- kvm-iotests-qcow2-COW-with-minimal-L2-cache-size.patch [bz#1226996] -- kvm-qcow2-Add-DEFAULT_L2_CACHE_CLUSTERS.patch [bz#1226996] -- kvm-spec-Ship-complete-QMP-documentation-files.patch [bz#1222834] -- Resolves: bz#1221425 - (qemu crash when hot-plug a memory device) -- Resolves: bz#1222834 - (We ship incomplete QMP documentation) -- Resolves: bz#1226809 - (Overflow in malloc size calculation in VMDK driver) -- Resolves: bz#1226996 - (qcow2: Fix minimum L2 cache size) -- Resolves: bz#1228574 - (Add RHEL7.2 machine type in QEMU for PPC64LE) -- Resolves: bz#1229073 - ([graphical framebuffer]Start guest failed when VNC listen on IPV6 address) -- Resolves: bz#1230550 - ([abrt] qemu-system-x86: __memcmp_sse4_1(): qemu-system-x86_64 killed by SIGSEGV) - -* Wed May 27 2015 Miroslav Rezanina - rhev-2.3.0-2.el7 -- kvm-balloon-improve-error-msg-when-adding-second-device.patch [bz#1165534] -- kvm-qmp-add-error-reason-to-the-BLOCK_IO_ERROR-event.patch [bz#1199174] -- kvm-spec-Remove-obsolete-differentiation-code.patch [bz#1122778] -- kvm-spec-Use-external-configuration-script.patch [bz#1122778] -- kvm-spec-Use-configure-options-to-prevent-default-resolu.patch [bz#1122778] -- kvm-fdc-force-the-fifo-access-to-be-in-bounds-of-the-all.patch [bz#1219272] -- Resolves: bz#1122778 - (miss "vhdx" and "iscsi" in qemu-img supported format list) -- Resolves: bz#1165534 - (balloon: improve error message when adding second device) -- Resolves: bz#1199174 - (QMP: forward port rhel-only error reason to BLOCK_IO_ERROR event) -- Resolves: bz#1219272 - (CVE-2015-3456 qemu-kvm-rhev: qemu: floppy disk controller flaw [rhel-7.2]) - -* Tue Apr 28 2015 Miroslav Rezanina - rhev-2.3.0-1.el7 -- Rebase to 2.3.0 [bz#1194151] -- kvm-misc-Add-pc-i440fx-rhel7-2-0-machine-type.patch [bz#1210050] -- kvm-misc-Add-pc-q35-rhel7-2-0-machine-type.patch [bz#1210050] -- Resolves: bz#1194151 - (Rebase to qemu 2.3) -- Resolves: bz#1210050 - (Add pc-i440fx-rhel7.2.0 machine type) - -* Thu Mar 19 2015 Miroslav Rezanina - rhev-2.2.0-8.el7 -- kvm-pc_sysfw-prevent-pflash-and-or-mis-sized-firmware-fo.patch [bz#1175099] -- kvm-build-reenable-local-builds-to-pass-enable-debug-dow.patch [] -- kvm-RPM-spec-install-dump-guest-memory.py-downstream-onl.patch [bz#1194304] -- kvm-vga-Expose-framebuffer-byteorder-as-a-QOM-property.patch [bz#1146809] -- kvm-pseries-Switch-VGA-endian-on-H_SET_MODE.patch [bz#1146809] -- kvm-Generalize-QOM-publishing-of-date-and-time-from-mc14.patch [bz#1172583] -- kvm-Add-more-VMSTATE_-_TEST-variants-for-integers.patch [bz#1171700] -- kvm-pseries-Move-sPAPR-RTC-code-into-its-own-file.patch [bz#1170132 bz#1171700 bz#1172583] -- kvm-pseries-Add-more-parameter-validation-in-RTAS-time-o.patch [bz#1170132 bz#1171700 bz#1172583] -- kvm-pseries-Add-spapr_rtc_read-helper-function.patch [bz#1170132 bz#1171700 bz#1172583] -- kvm-pseries-Make-RTAS-time-of-day-functions-respect-rtc-.patch [bz#1170132] -- kvm-pseries-Make-the-PAPR-RTC-a-qdev-device.patch [bz#1170132 bz#1171700 bz#1172583] -- kvm-pseries-Move-rtc_offset-into-RTC-device-s-state-stru.patch [bz#1171700] -- kvm-pseries-Export-RTC-time-via-QOM.patch [bz#1172583] -- kvm-pseries-Limit-PCI-host-bridge-index-value.patch [bz#1181409] -- Resolves: bz#1146809 - (Incorrect colours on virtual VGA with ppc64le guest under ppc64 host) -- Resolves: bz#1170132 - (Guest time could change with host time even specify the guest clock as "-rtc base=utc,clock=vm,...") -- Resolves: bz#1171700 - ('hwclock' in destination guest returns to base '2006-06-06' after migration) -- Resolves: bz#1172583 - ([Power KVM] Qemu monitor command don't support {"execute":"qom-get","arguments":{"path":"/machine","property":"rtc-time"}}) -- Resolves: bz#1175099 - ([migration]migration failed when configure guest with OVMF bios + machine type=rhel6.5.0) -- Resolves: bz#1181409 - (PCI pass-through device works improperly due to the PHB's index being set to a big value) -- Resolves: bz#1194304 - ([Hitachi 7.2 FEAT] Extract guest memory dump from qemu-kvm-rhev core) - -* Tue Mar 10 2015 Miroslav Rezanina - rhev-2.2.0-7.el7 -- kvm-aarch64-Add-PCI-and-VIRTIO_PCI-devices-for-AArch64.patch [bz#1200090] -- kvm-Add-specific-config-options-for-PCI-E-bridges.patch [bz#1200090] -- Resolves: bz#1200090 - (qemu-kvm-rhev (2.2.0-6) breaks ISO installation) - -* Mon Mar 02 2015 Miroslav Rezanina - rhev-2.2.0-6.el7 -- kvm-AArch64-Prune-the-devices-available-for-AArch64-gues.patch [bz#1170734] -- kvm-Give-ivshmem-its-own-config-option.patch [bz#1170734] -- kvm-aarch64-Prune-unsupported-CPU-types-for-aarch64.patch [bz#1170734] -- Resolves: bz#1170734 - (Trim qemu-kvm devices for aarch64) - -* Wed Feb 11 2015 Miroslav Rezanina - rhev-2.2.0-5.el7 -- kvm-kvm_stat-Add-aarch64-support.patch [bz#1184603] -- kvm-kvm_stat-Update-exit-reasons-to-the-latest-defintion.patch [bz#1184603] -- kvm-kvm_stat-Add-RESET-support-for-perf-event-ioctl.patch [bz#1184603] -- kvm-ignore-SIGIO-in-tests-that-use-AIO-context-aarch64-h.patch [bz#1184405] -- kvm-aio_notify-force-main-loop-wakeup-with-SIGIO-aarch64.patch [bz#1184405] -- Resolves: bz#1184405 - (lost block IO completion notification (for virtio-scsi disk) hangs main loop) -- Resolves: bz#1184603 - (enable kvm_stat support for aarch64) - -* Mon Feb 09 2015 Miroslav Rezanina - rhev-2.2.0-4.el7 -- kvm-Downstream-only-Restore-pseries-machine-alias.patch [bz#1170934] -- kvm-PPC-Fix-crash-on-spapr_tce_table_finalize.patch [bz#1170934] -- kvm-virtio_serial-Don-t-use-vser-config.max_nr_ports-int.patch [bz#1169230] -- kvm-virtio-serial-Don-t-keep-a-persistent-copy-of-config.patch [bz#1169230] -- kvm-spapr-Fix-stale-HTAB-during-live-migration-KVM.patch [bz#1168446] -- kvm-spapr-Fix-integer-overflow-during-migration-TCG.patch [bz#1168446] -- kvm-spapr-Fix-stale-HTAB-during-live-migration-TCG.patch [bz#1168446] -- Resolves: bz#1168446 - (Stale hash PTEs may be transferred during live migration of PAPR guests) -- Resolves: bz#1169230 - (QEMU core dumped when do ping-pong migration to file for LE guest) -- Resolves: bz#1170934 - (Segfault at spapr_tce_table_finalize(): QLIST_REMOVE(tcet, list)) - -* Thu Jan 22 2015 Miroslav Rezanina - rhev-2.2.0-3.el7 -- kvm-Downstream-only-arm-define-a-new-machine-type-for-RH.patch [bz#1176838] -- Resolves: bz#1176838 - (create rhelsa machine type) - -* Wed Jan 14 2015 Miroslav Rezanina - rhev-2.2.0-2.el7.next.candidate -- kvm-Update-to-qemu-kvm-rhev-2.1.2-19.el7.patch [] -- kvm-fw_cfg-remove-superfluous-blank-line.patch [bz#1169869] -- kvm-hw-arm-boot-fix-uninitialized-scalar-variable-warnin.patch [bz#1169869] -- kvm-Sort-include-qemu-typedefs.h.patch [bz#1169869] -- kvm-fw_cfg-hard-separation-between-the-MMIO-and-I-O-port.patch [bz#1169869] -- kvm-fw_cfg-move-boards-to-fw_cfg_init_io-fw_cfg_init_mem.patch [bz#1169869] -- kvm-fw_cfg_mem-max-access-size-and-region-size-are-the-s.patch [bz#1169869] -- kvm-fw_cfg_mem-flip-ctl_mem_ops-and-data_mem_ops-to-DEVI.patch [bz#1169869] -- kvm-exec-allows-8-byte-accesses-in-subpage_ops.patch [bz#1169869] -- kvm-fw_cfg_mem-introduce-the-data_width-property.patch [bz#1169869] -- kvm-fw_cfg_mem-expose-the-data_width-property-with-fw_cf.patch [bz#1169869] -- kvm-arm-add-fw_cfg-to-virt-board.patch [bz#1169869] -- kvm-hw-loader-split-out-load_image_gzipped_buffer.patch [bz#1169869] -- kvm-hw-arm-pass-pristine-kernel-image-to-guest-firmware-.patch [bz#1169869] -- kvm-hw-arm-virt-enable-passing-of-EFI-stubbed-kernel-to-.patch [bz#1169869] -- kvm-fw_cfg-fix-endianness-in-fw_cfg_data_mem_read-_write.patch [bz#1169869] -- Resolves: bz#1169869 - (add fw_cfg to mach-virt) - -* Tue Jan 13 2015 Miroslav Rezanina - rhev-2.1.2-19.el7 -- kvm-smbios-Fix-dimm-size-calculation-when-RAM-is-multipl.patch [bz#1179165] -- kvm-smbios-Don-t-report-unknown-CPU-speed-fix-SVVP-regre.patch [bz#1177127] -- Resolves: bz#1177127 - ([SVVP]smbios HCT job failed with 'Processor Max Speed cannot be Unknown' with -M pc-i440fx-rhel7.1.0) -- Resolves: bz#1179165 - ([SVVP]smbios HCT job failed with Unspecified error with -M pc-i440fx-rhel7.1.0) - -* Thu Jan 08 2015 Miroslav Rezanina - rhev-2.2.0-1.el7 -- rebase to qemu 2.2.0 - -* Thu Jan 08 2015 Miroslav Rezanina - rhev-2.1.2-18.el7 -- kvm-vl-Adjust-the-place-of-calling-mlockall-to-speedup-V.patch [bz#1173394] -- kvm-block-delete-cow-block-driver.patch [bz#1175841] -- Resolves: bz#1173394 - (numa_smaps doesn't respect bind policy with huge page) -- Resolves: bz#1175841 - (Delete cow block driver) - -* Tue Dec 16 2014 Jeff E. Nelson - rhev-2.1.2-17.el7 -- kvm-numa-Don-t-allow-memdev-on-RHEL-6-machine-types.patch [bz#1170093] -- kvm-block-allow-bdrv_unref-to-be-passed-NULL-pointers.patch [bz#1136381] -- kvm-block-vdi-use-block-layer-ops-in-vdi_create-instead-.patch [bz#1136381] -- kvm-block-use-the-standard-ret-instead-of-result.patch [bz#1136381] -- kvm-block-vpc-use-block-layer-ops-in-vpc_create-instead-.patch [bz#1136381] -- kvm-block-iotest-update-084-to-test-static-VDI-image-cre.patch [bz#1136381] -- kvm-block-remove-BLOCK_OPT_NOCOW-from-vdi_create_opts.patch [bz#1136381] -- kvm-block-remove-BLOCK_OPT_NOCOW-from-vpc_create_opts.patch [bz#1136381] -- kvm-migration-fix-parameter-validation-on-ram-load-CVE-2.patch [bz#1163079] -- kvm-qdev-monitor-fix-segmentation-fault-on-qdev_device_h.patch [bz#1169280] -- kvm-block-migration-Disable-cache-invalidate-for-incomin.patch [bz#1171552] -- kvm-acpi-Use-apic_id_limit-when-calculating-legacy-ACPI-.patch [bz#1173167] -- Resolves: bz#1136381 - (RFE: Supporting creating vdi/vpc format disk with protocols (glusterfs) for qemu-kvm-rhev-2.1.x) -- Resolves: bz#1163079 - (CVE-2014-7840 qemu-kvm-rhev: qemu: insufficient parameter validation during ram load [rhel-7.1]) -- Resolves: bz#1169280 - (Segfault while query device properties (ics, icp)) -- Resolves: bz#1170093 - (guest NUMA failed to migrate when machine is rhel6.5.0) -- Resolves: bz#1171552 - (Storage vm migration failed when running BurnInTes) -- Resolves: bz#1173167 - (Corrupted ACPI tables in some configurations using pc-i440fx-rhel7.0.0) - -* Fri Dec 05 2014 Miroslav Rezanina - rhev-2.1.2-16.el7 -- kvm-qemu-iotests-Fix-broken-test-cases.patch [bz#1169589] -- kvm-Fix-for-crash-after-migration-in-virtio-rng-on-bi-en.patch [bz#1165087] -- kvm-Downstream-only-remove-unsupported-machines-from-AAr.patch [bz#1169847] -- Resolves: bz#1165087 - (QEMU core dumped for the destination guest when do migating guest to file) -- Resolves: bz#1169589 - (test case 051 071 and 087 of qemu-iotests fail for qcow2 with qemu-kvm-rhev-2.1.2-14.el7) -- Resolves: bz#1169847 - (only support mach-virt) - -* Tue Dec 02 2014 Miroslav Rezanina - rhev-2.1.2-15.el7 -- kvm-scsi-Optimize-scsi_req_alloc.patch [bz#1141656] -- kvm-virtio-scsi-Optimize-virtio_scsi_init_req.patch [bz#1141656] -- kvm-virtio-scsi-Fix-comment-for-VirtIOSCSIReq.patch [bz#1141656] -- kvm-Downstream-only-Move-daemon-reload-to-make-sure-new-.patch [bz#1168085] -- Resolves: bz#1141656 - (Virtio-scsi: performance degradation from 1.5.3 to 2.1.0) -- Resolves: bz#1168085 - (qemu-kvm-rhev install scripts sometimes don't recognize newly installed systemd presets) - -* Thu Nov 27 2014 Miroslav Rezanina - rhev-2.1.2-14.el7 -- kvm-xhci-add-sanity-checks-to-xhci_lookup_uport.patch [bz#1161397] -- kvm-qemu-img-Allow-source-cache-mode-specification.patch [bz#1166481] -- kvm-qemu-img-Allow-cache-mode-specification-for-amend.patch [bz#1166481] -- kvm-qemu-img-fix-img_compare-flags-error-path.patch [bz#1166481] -- kvm-qemu-img-clarify-src_cache-option-documentation.patch [bz#1166481] -- kvm-qemu-img-fix-rebase-src_cache-option-documentation.patch [bz#1166481] -- Resolves: bz#1161397 - (qemu core dump when install a RHEL.7 guest(xhci) with migration) -- Resolves: bz#1166481 - (Allow qemu-img to bypass the host cache (check, compare, convert, rebase, amend)) - -* Tue Nov 25 2014 Miroslav Rezanina - rhev-2.1.2-13.el7 -- kvm-hw-pci-fixed-error-flow-in-pci_qdev_init.patch [bz#1166067] -- kvm-hw-pci-fixed-hotplug-crash-when-using-rombar-0-with-.patch [bz#1166067] -- Resolves: bz#1166067 - (qemu-kvm aborted when hot plug PCI device to guest with romfile and rombar=0) - -* Fri Nov 21 2014 Miroslav Rezanina - rhev-2.1.2-12.el7 -- kvm-migration-static-variables-will-not-be-reset-at-seco.patch [bz#1166501] -- Resolves: bz#1166501 - (Migration "expected downtime" does not refresh after reset to a new value) - -* Fri Nov 21 2014 Miroslav Rezanina - rhev-2.1.2-11.el7 -- kvm-iscsi-Refuse-to-open-as-writable-if-the-LUN-is-write.patch [bz#1160102] -- kvm-vnc-sanitize-bits_per_pixel-from-the-client.patch [bz#1157646] -- kvm-usb-host-fix-usb_host_speed_compat-tyops.patch [bz#1160504] -- kvm-block-raw-posix-Fix-disk-corruption-in-try_fiemap.patch [bz#1142331] -- kvm-block-raw-posix-use-seek_hole-ahead-of-fiemap.patch [bz#1142331] -- kvm-raw-posix-Fix-raw_co_get_block_status-after-EOF.patch [bz#1142331] -- kvm-raw-posix-raw_co_get_block_status-return-value.patch [bz#1142331] -- kvm-raw-posix-SEEK_HOLE-suffices-get-rid-of-FIEMAP.patch [bz#1142331] -- kvm-raw-posix-The-SEEK_HOLE-code-is-flawed-rewrite-it.patch [bz#1142331] -- kvm-exec-Handle-multipage-ranges-in-invalidate_and_set_d.patch [bz#1164759] -- Resolves: bz#1142331 - (qemu-img convert intermittently corrupts output images) -- Resolves: bz#1157646 - (CVE-2014-7815 qemu-kvm-rhev: qemu: vnc: insufficient bits_per_pixel from the client sanitization [rhel-7.1]) -- Resolves: bz#1160102 - (opening read-only iscsi lun as read-write should fail) -- Resolves: bz#1160504 - (guest can not show usb device after adding some usb controllers and redirdevs.) -- Resolves: bz#1164759 - (Handle multipage ranges in invalidate_and_set_dirty()) - -* Thu Nov 20 2014 Miroslav Rezanina - rhev-2.1.2-10.el7 -- kvm-pc-dimm-Don-t-check-dimm-node-when-there-is-non-NUMA.patch [bz#1150510 bz#1163735] -- kvm-vga-Start-cutting-out-non-32bpp-conversion-support.patch [bz#1146809] -- kvm-vga-Remove-remainder-of-old-conversion-cruft.patch [bz#1146809] -- kvm-vga-Separate-LE-and-BE-conversion-functions.patch [bz#1146809] -- kvm-vga-Remove-rgb_to_pixel-indirection.patch [bz#1146809] -- kvm-vga-Simplify-vga_draw_blank-a-bit.patch [bz#1146809] -- kvm-cirrus-Remove-non-32bpp-cursor-drawing.patch [bz#1146809] -- kvm-vga-Remove-some-should-be-done-in-BIOS-comments.patch [bz#1146809] -- kvm-vga-Rename-vga_template.h-to-vga-helpers.h.patch [bz#1146809] -- kvm-vga-Make-fb-endian-a-common-state-variable.patch [bz#1146809] -- kvm-vga-Add-endian-to-vmstate.patch [bz#1146809] -- kvm-vga-pci-add-qext-region-to-mmio.patch [bz#1146809] -- kvm-virtio-scsi-work-around-bug-in-old-BIOSes.patch [bz#1123812] -- kvm-Revert-Downstream-only-Add-script-to-autoload-KVM-mo.patch [bz#1158250 bz#1159706] -- kvm-Downstream-only-add-script-on-powerpc-to-configure-C.patch [bz#1158250 bz#1158251 bz#1159706] -- kvm-block-New-bdrv_nb_sectors.patch [bz#1132385] -- kvm-vmdk-Optimize-cluster-allocation.patch [bz#1132385] -- kvm-vmdk-Handle-failure-for-potentially-large-allocation.patch [bz#1132385] -- kvm-vmdk-Use-bdrv_nb_sectors-where-sectors-not-bytes-are.patch [bz#1132385] -- kvm-vmdk-fix-vmdk_parse_extents-extent_file-leaks.patch [bz#1132385] -- kvm-vmdk-fix-buf-leak-in-vmdk_parse_extents.patch [bz#1132385] -- kvm-vmdk-Fix-integer-overflow-in-offset-calculation.patch [bz#1132385] -- kvm-Revert-Build-ceph-rbd-only-for-rhev.patch [bz#1140744] -- kvm-Revert-rbd-Only-look-for-qemu-specific-copy-of-librb.patch [bz#1140744] -- kvm-Revert-rbd-link-and-load-librbd-dynamically.patch [bz#1140744] -- kvm-spec-Enable-rbd-driver-add-dependency.patch [bz#1140744] -- kvm-Use-qemu-kvm-in-documentation-instead-of-qemu-system.patch [bz#1140620] -- kvm-ide-stash-aiocb-for-flushes.patch [bz#1024599] -- kvm-ide-simplify-reset-callbacks.patch [bz#1024599] -- kvm-ide-simplify-set_inactive-callbacks.patch [bz#1024599] -- kvm-ide-simplify-async_cmd_done-callbacks.patch [bz#1024599] -- kvm-ide-simplify-start_transfer-callbacks.patch [bz#1024599] -- kvm-ide-wrap-start_dma-callback.patch [bz#1024599] -- kvm-ide-remove-wrong-setting-of-BM_STATUS_INT.patch [bz#1024599] -- kvm-ide-fold-add_status-callback-into-set_inactive.patch [bz#1024599] -- kvm-ide-move-BM_STATUS-bits-to-pci.-ch.patch [bz#1024599] -- kvm-ide-move-retry-constants-out-of-BM_STATUS_-namespace.patch [bz#1024599] -- kvm-ahci-remove-duplicate-PORT_IRQ_-constants.patch [bz#1024599] -- kvm-ide-stop-PIO-transfer-on-errors.patch [bz#1024599] -- kvm-ide-make-all-commands-go-through-cmd_done.patch [bz#1024599] -- kvm-ide-atapi-Mark-non-data-commands-as-complete.patch [bz#1024599] -- kvm-ahci-construct-PIO-Setup-FIS-for-PIO-commands.patch [bz#1024599] -- kvm-ahci-properly-shadow-the-TFD-register.patch [bz#1024599] -- kvm-ahci-Correct-PIO-D2H-FIS-responses.patch [bz#1024599] -- kvm-ahci-Update-byte-count-after-DMA-completion.patch [bz#1024599] -- kvm-ahci-Fix-byte-count-regression-for-ATAPI-PIO.patch [bz#1024599] -- kvm-ahci-Fix-SDB-FIS-Construction.patch [bz#1024599] -- kvm-vhost-user-fix-mmap-offset-calculation.patch [bz#1159710] -- Resolves: bz#1024599 - (Windows7 x86 guest with ahci backend hit BSOD when do "hibernate") -- Resolves: bz#1123812 - (Reboot guest and guest's virtio-scsi disk will be lost after forwards migration (from RHEL6.6 host to RHEL7.1 host)) -- Resolves: bz#1132385 - (qemu-img convert rate about 100k/second from qcow2/raw to vmdk format on nfs system file) -- Resolves: bz#1140620 - (Should replace "qemu-system-i386" by "/usr/libexec/qemu-kvm" in manpage of qemu-kvm for our official qemu-kvm build) -- Resolves: bz#1140744 - (Enable native support for Ceph) -- Resolves: bz#1146809 - (Incorrect colours on virtual VGA with ppc64le guest under ppc64 host) -- Resolves: bz#1150510 - (kernel ignores ACPI memory devices (PNP0C80) present at boot time) -- Resolves: bz#1158250 - (KVM modules are not autoloaded on POWER hosts) -- Resolves: bz#1158251 - (POWER KVM host starts by default with threads enabled, which prevents running guests) -- Resolves: bz#1159706 - (Need means to configure subcore mode for RHEL POWER8 hosts) -- Resolves: bz#1159710 - (vhost-user:Bad ram offset) -- Resolves: bz#1163735 - (-device pc-dimm fails to initialize on non-NUMA configs) - -* Wed Nov 19 2014 Miroslav Rezanina - rhev-2.1.2-9.el7 -- kvm-aarch64-raise-max_cpus-to-8.patch [bz#1160325] -- kvm-hw-arm-virt-add-linux-stdout-path-to-chosen-DT-node.patch [bz#1160325] -- kvm-hw-arm-virt-Provide-flash-devices-for-boot-ROMs.patch [bz#1160325] -- kvm-hw-arm-boot-load-DTB-as-a-ROM-image.patch [bz#1160325] -- kvm-hw-arm-boot-pass-an-address-limit-to-and-return-size.patch [bz#1160325] -- kvm-hw-arm-boot-load-device-tree-to-base-of-DRAM-if-no-k.patch [bz#1160325] -- kvm-hw-arm-boot-enable-DTB-support-when-booting-ELF-imag.patch [bz#1160325] -- kvm-hw-arm-virt-mark-timer-in-fdt-as-v8-compatible.patch [bz#1160325] -- kvm-hw-arm-boot-register-cpu-reset-handlers-if-using-bio.patch [bz#1160325] -- kvm-Downstream-only-Declare-ARM-kernel-support-read-only.patch [bz#1160325] -- Resolves: bz#1160325 - (arm64: support aavmf) - -* Thu Nov 13 2014 Miroslav Rezanina - rhev-2.1.2-8.el7 -- kvm-ide-Add-wwn-support-to-IDE-ATAPI-drive.patch [bz#1150820] -- kvm-exec-report-error-when-memory-hpagesize.patch [bz#1147354] -- kvm-exec-add-parameter-errp-to-gethugepagesize.patch [bz#1147354] -- kvm-block-curl-Improve-type-safety-of-s-timeout.patch [bz#1152901] -- kvm-virtio-serial-avoid-crash-when-port-has-no-name.patch [bz#1151947] -- Resolves: bz#1147354 - (Qemu core dump when boot up a guest on a non-existent hugepage path) -- Resolves: bz#1150820 - (fail to specify wwn for virtual IDE CD-ROM) -- Resolves: bz#1151947 - (virtconsole causes qemu-kvm core dump) -- Resolves: bz#1152901 - (block/curl: Fix type safety of s->timeout) - -* Thu Nov 06 2014 Miroslav Rezanina - rhev-2.1.2-7.el7 -- kvm-ac97-register-reset-via-qom.patch [bz#1141666] -- kvm-specfile-Require-glusterfs-api-3.6.patch [bz#1157329] -- kvm-smbios-Fix-assertion-on-socket-count-calculation.patch [bz#1146573] -- kvm-smbios-Encode-UUID-according-to-SMBIOS-specification.patch [bz#1152922] -- kvm-virtio-scsi-Report-error-if-num_queues-is-0-or-too-l.patch [bz#1146826] -- kvm-virtio-scsi-Fix-memory-leak-when-realize-failed.patch [bz#1146826] -- kvm-virtio-scsi-Fix-num_queue-input-validation.patch [bz#1146826] -- kvm-util-Improve-os_mem_prealloc-error-message.patch [bz#1153590] -- kvm-Downstream-only-Add-script-to-autoload-KVM-modules-o.patch [bz#1158250] -- kvm-Downstream-only-remove-uneeded-PCI-devices-for-POWER.patch [bz#1160120] -- kvm-Downstream-only-Remove-assorted-unneeded-devices-for.patch [bz#1160120] -- kvm-Downstream-only-Remove-ISA-bus-and-device-support-fo.patch [bz#1160120] -- kvm-well-defined-listing-order-for-machine-types.patch [bz#1145042] -- kvm-i386-pc-add-piix-and-q35-machtypes-to-sorting-famili.patch [bz#1145042] -- kvm-i386-pc-add-RHEL-machtypes-to-sorting-families-for-M.patch [bz#1145042] -- Resolves: bz#1141666 - (Qemu crashed if reboot guest after hot remove AC97 sound device) -- Resolves: bz#1145042 - (The output of "/usr/libexec/qemu-kvm -M ?" should be ordered.) -- Resolves: bz#1146573 - (qemu core dump when boot guest with smp(num) - rhev-2.1.2-6.el7 -- kvm-ivshmem-use-error_report.patch [bz#1104063] -- kvm-ivshmem-RHEL-only-remove-unsupported-code.patch [bz#1104063] -- kvm-ivshmem-RHEL-only-explicitly-remove-dead-code.patch [bz#1104063] -- kvm-Revert-rhel-Drop-ivshmem-device.patch [bz#1104063] -- kvm-serial-reset-state-at-startup.patch [bz#1135844] -- kvm-spice-call-qemu_spice_set_passwd-during-init.patch [bz#1140975] -- kvm-input-fix-send-key-monitor-command-release-event-ord.patch [bz#1145028 bz#1146801] -- kvm-virtio-scsi-sense-in-virtio_scsi_command_complete.patch [bz#1152830] -- Resolves: bz#1104063 - ([RHEL7.1 Feat] Enable qemu-kvm Inter VM Shared Memory (IVSHM) feature) -- Resolves: bz#1135844 - ([virtio-win]communication ports were marked with a yellow exclamation after hotplug pci-serial,pci-serial-2x,pci-serial-4x) -- Resolves: bz#1140975 - (fail to login spice session with password + expire time) -- Resolves: bz#1145028 - (send-key does not crash windows guest even when it should) -- Resolves: bz#1146801 - (sendkey: releasing order of combined keys was wrongly converse) -- Resolves: bz#1152830 - (Fix sense buffer in virtio-scsi LUN passthrough) - -* Fri Oct 24 2014 Miroslav Rezanina - rhev-2.1.2-5.el7 -- kvm-blockdev-Orphaned-drive-search.patch [bz#946993] -- kvm-blockdev-Allow-overriding-if_max_dev-property.patch [bz#946993] -- kvm-pc-vl-Add-units-per-default-bus-property.patch [bz#946993] -- kvm-ide-Update-ide_drive_get-to-be-HBA-agnostic.patch [bz#946993] -- kvm-qtest-bios-tables-Correct-Q35-command-line.patch [bz#946993] -- kvm-q35-ahci-Pick-up-cdrom-and-hda-options.patch [bz#946993] -- kvm-trace-events-drop-orphan-virtio_blk_data_plane_compl.patch [bz#1144325] -- kvm-trace-events-drop-orphan-usb_mtp_data_out.patch [bz#1144325] -- kvm-trace-events-drop-orphan-iscsi-trace-events.patch [bz#1144325] -- kvm-cleanup-trace-events.pl-Tighten-search-for-trace-eve.patch [bz#1144325] -- kvm-trace-events-Drop-unused-megasas-trace-event.patch [bz#1144325] -- kvm-trace-events-Drop-orphaned-monitor-trace-event.patch [bz#1144325] -- kvm-trace-events-Fix-comments-pointing-to-source-files.patch [bz#1144325] -- kvm-simpletrace-add-simpletrace.py-no-header-option.patch [bz#1155015] -- kvm-trace-extract-stap_escape-function-for-reuse.patch [bz#1155015] -- kvm-trace-add-tracetool-simpletrace_stap-format.patch [bz#1155015] -- kvm-trace-install-simpletrace-SystemTap-tapset.patch [bz#1155015] -- kvm-trace-install-trace-events-file.patch [bz#1155015] -- kvm-trace-add-SystemTap-init-scripts-for-simpletrace-bri.patch [bz#1155015] -- kvm-simpletrace-install-simpletrace.py.patch [bz#1155015] -- kvm-trace-add-systemtap-initscript-README-file-to-RPM.patch [bz#1155015] -- Resolves: bz#1144325 - (Can not probe "qemu.kvm.virtio_blk_data_plane_complete_request") -- Resolves: bz#1155015 - ([Fujitsu 7.1 FEAT]:QEMU: capturing trace data all the time using ftrace-based tracing) -- Resolves: bz#946993 - (Q35 does not honor -drive if=ide,... and its sugared forms -cdrom, -hda, ...) - -* Mon Oct 20 2014 Miroslav Rezanina - rhev-2.1.2-4.el7 -- kvm-seccomp-add-semctl-to-the-syscall-whitelist.patch [bz#1126704] -- kvm-dataplane-fix-virtio_blk_data_plane_create-op-blocke.patch [bz#1140001] -- kvm-block-fix-overlapping-multiwrite-requests.patch [bz#1123908] -- kvm-qemu-iotests-add-multiwrite-test-cases.patch [bz#1123908] -- Resolves: bz#1123908 - (block.c: multiwrite_merge() truncates overlapping requests) -- Resolves: bz#1126704 - (BUG: When use '-sandbox on'+'vnc'+'hda' and quit, qemu-kvm hang) -- Resolves: bz#1140001 - (data-plane hotplug should be refused to start if device is already in use (drive-mirror job)) - -* Fri Oct 10 2014 Miroslav Rezanina - rhev-2.1.2-3.el7 -- kvm-Disable-tests-for-removed-features.patch [bz#1108040] -- kvm-Disable-arm-board-types-using-lsi53c895a.patch [bz#1108040] -- kvm-libqtest-launch-QEMU-with-QEMU_AUDIO_DRV-none.patch [bz#1108040] -- kvm-Whitelist-blkdebug-driver.patch [bz#1108040] -- kvm-Turn-make-check-on.patch [bz#1108040] -- Resolves: bz#1108040 - (Enable make check for qemu-kvm-rhev 2.0 and newer) - -* Fri Oct 10 2014 Miroslav Rezanina - rhev-2.1.2-2.el7 -- kvm-RPM-spec-Add-enable-numa-to-configure-command-line.patch [bz#1076990] -- kvm-block.curl-adding-timeout-option.patch [bz#1132569] -- kvm-curl-Allow-a-cookie-or-cookies-to-be-sent-with-http-.patch [bz#1132569] -- kvm-curl-Don-t-deref-NULL-pointer-in-call-to-aio_poll.patch [bz#1132569] -- kvm-curl-Add-timeout-and-cookie-options-and-misc.-fix-RH.patch [bz#1132569] -- kvm-Introduce-cpu_clean_all_dirty.patch [bz#1143054] -- kvm-kvmclock-Ensure-proper-env-tsc-value-for-kvmclock_cu.patch [bz#1143054] -- kvm-kvmclock-Ensure-time-in-migration-never-goes-backwar.patch [bz#1143054] -- kvm-IDE-Fill-the-IDENTIFY-request-consistently.patch [bz#852348] -- kvm-ide-Add-resize-callback-to-ide-core.patch [bz#852348] -- kvm-virtio-balloon-fix-integer-overflow-in-memory-stats-.patch [bz#1140997] -- kvm-block-extend-BLOCK_IO_ERROR-event-with-nospace-indic.patch [bz#1117445] -- kvm-block-extend-BLOCK_IO_ERROR-with-reason-string.patch [bz#1117445] -- Resolves: bz#1076990 - (Enable complex memory requirements for virtual machines) -- Resolves: bz#1117445 - (QMP: extend block events with error information) -- Resolves: bz#1132569 - (RFE: Enable curl driver in qemu-kvm-rhev: https only) -- Resolves: bz#1140997 - (guest is stuck when setting balloon memory with large guest-stats-polling-interval) -- Resolves: bz#1143054 - (kvmclock: Ensure time in migration never goes backward (backport)) -- Resolves: bz#852348 - (fail to block_resize local data disk with IDE/AHCI disk_interface) - -* Fri Sep 26 2014 Miroslav Rezanina - rhev-2.1.2-1.el7 -- Rebase to qemu 2.1.2 [bz#1121609] -- Resolves: bz#1121609 - Rebase qemu-kvm-rhev to qemu 2.1.2 - -* Wed Sep 24 2014 Miroslav Rezanina - rhev-2.1.0-5.el7 -- kvm-target-i386-Reject-invalid-CPU-feature-names-on-the-.patch [bz#1055532] -- kvm-target-ppc-virtex-ml507-machine-type-should-depend-o.patch [bz#1113998] -- kvm-RHEL-only-Disable-tests-that-don-t-work-with-RHEL-bu.patch [bz#1113998] -- kvm-RHEL-onlyy-Disable-unused-ppc-machine-types.patch [bz#1113998] -- kvm-RHEL-only-Remove-unneeded-devices-from-ppc64-qemu-kv.patch [] -- kvm-RHEL-only-Replace-upstream-pseries-machine-types-wit.patch [] -- kvm-scsi-bus-prepare-scsi_req_new-for-introduction-of-pa.patch [bz#1123349] -- kvm-scsi-bus-introduce-parse_cdb-in-SCSIDeviceClass-and-.patch [bz#1123349] -- kvm-scsi-block-extract-scsi_block_is_passthrough.patch [bz#1123349] -- kvm-scsi-block-scsi-generic-implement-parse_cdb.patch [bz#1123349] -- kvm-virtio-scsi-implement-parse_cdb.patch [bz#1123349] -- kvm-exec-file_ram_alloc-print-error-when-prealloc-fails.patch [bz#1135893] -- kvm-pc-increase-maximal-VCPU-count-to-240.patch [bz#1144089] -- kvm-ssh-Enable-ssh-driver-in-qemu-kvm-rhev-RHBZ-1138359.patch [bz#1138359] -- Resolves: bz#1055532 - (QEMU should abort when invalid CPU flag name is used) -- Resolves: bz#1113998 - (RHEL Power/KVM (qemu-kvm-rhev)) -- Resolves: bz#1123349 - ([FJ7.0 Bug] SCSI command issued from KVM guest doesn't reach target device) -- Resolves: bz#1135893 - (qemu-kvm should report an error message when host's freehugepage memory < domain's memory) -- Resolves: bz#1138359 - (RFE: Enable ssh driver in qemu-kvm-rhev) -- Resolves: bz#1144089 - ([HP 7.1 FEAT] Increase qemu-kvm-rhev's VCPU limit to 240) - -* Wed Sep 17 2014 Miroslav Rezanina - rhev-2.1.0-4.el7 -- kvm-virtio-rng-add-some-trace-events.patch [bz#1129259] -- kvm-block-vhdx-add-error-check.patch [bz#1126976] -- kvm-block-VHDX-endian-fixes.patch [bz#1126976] -- kvm-qdev-monitor-include-QOM-properties-in-device-FOO-he.patch [bz#1133736] -- kvm-block-acquire-AioContext-in-qmp_block_resize.patch [bz#1136752] -- kvm-virtio-blk-allow-block_resize-with-dataplane.patch [bz#1136752] -- kvm-block-acquire-AioContext-in-do_drive_del.patch [bz#1136752] -- kvm-virtio-blk-allow-drive_del-with-dataplane.patch [bz#1136752] -- kvm-rhel-Add-rhel7.1.0-machine-types.patch [bz#1093023] -- kvm-vmstate_xhci_event-bug-compat-for-rhel7.0.0-machine-.patch [bz#1136512] -- kvm-pflash_cfi01-fixup-stale-DPRINTF-calls.patch [bz#1139706] -- kvm-pflash_cfi01-write-flash-contents-to-bdrv-on-incomin.patch [bz#1139706] -- kvm-ide-Fix-segfault-when-flushing-a-device-that-doesn-t.patch [bz#1140145] -- kvm-xhci-PCIe-endpoint-migration-compatibility-fix.patch [bz#1138579] -- kvm-rh-machine-types-xhci-PCIe-endpoint-migration-compat.patch [bz#1138579] -- Resolves: bz#1093023 - (provide RHEL-specific machine types in QEMU) -- Resolves: bz#1126976 - (VHDX image format does not work on PPC64 (Endian issues)) -- Resolves: bz#1129259 - (Add traces to virtio-rng device) -- Resolves: bz#1133736 - (qemu should provide iothread and x-data-plane properties for /usr/libexec/qemu-kvm -device virtio-blk-pci,?) -- Resolves: bz#1136512 - (rhel7.0.0 machtype compat after CVE-2014-5263 vmstate_xhci_event: fix unterminated field list) -- Resolves: bz#1136752 - (virtio-blk dataplane support for block_resize and hot unplug) -- Resolves: bz#1138579 - (Migration failed with nec-usb-xhci from RHEL7. 0 to RHEL7.1) -- Resolves: bz#1139706 - (pflash (UEFI varstore) migration shortcut for libvirt [RHEV]) -- Resolves: bz#1140145 - (qemu-kvm crashed when doing iofuzz testing) - -* Thu Aug 28 2014 Miroslav Rezanina - rhev-2.1.0-3.el7 -- kvm-Fix-pkgversion-value.patch [bz#1064742] -- kvm-virtio-serial-create-a-linked-list-of-all-active-dev.patch [bz#1003432] -- kvm-virtio-serial-search-for-duplicate-port-names-before.patch [bz#1003432] -- kvm-pc-RHEL-6-CPUID-compat-code-for-Broadwell-CPU-model.patch [bz#1111351] -- kvm-rpm-spec-build-qemu-kvm-with-lzo-and-snappy-enabled.patch [bz#1126933] -- Resolves: bz#1003432 - (qemu-kvm should not allow different virtio serial port use the same name) -- Resolves: bz#1064742 - (QMP: "query-version" doesn't include the -rhev prefix from the qemu-kvm-rhev package) -- Resolves: bz#1111351 - (RHEL-6.6 migration compatibility: CPU models) -- Resolves: bz#1126933 - ([FEAT RHEV7.1]: qemu: Support compression for dump-guest-memory command) - -* Mon Aug 18 2014 Miroslav Rezanina <> - rhev-2.1.0-2.el7 -- kvm-exit-when-no-kvm-and-vcpu-count-160.patch [bz#1076326 bz#1118665] -- kvm-Revert-Use-legacy-SMBIOS-for-rhel-machine-types.patch [bz#1118665] -- kvm-rhel-Use-SMBIOS-legacy-mode-for-machine-types-7.0.patch [bz#1118665] -- kvm-rhel-Suppress-hotplug-memory-address-space-for-machi.patch [bz#1118665] -- kvm-rhel-Fix-ACPI-table-size-for-machine-types-7.0.patch [bz#1118665] -- kvm-rhel-Fix-missing-pc-q35-rhel7.0.0-compatibility-prop.patch [bz#1118665] -- kvm-rhel-virtio-scsi-pci.any_layout-off-for-machine-type.patch [bz#1118665] -- kvm-rhel-PIIX4_PM.memory-hotplug-support-off-for-machine.patch [bz#1118665] -- kvm-rhel-apic.version-0x11-for-machine-types-7.0.patch [bz#1118665] -- kvm-rhel-nec-usb-xhci.superspeed-ports-first-off-for-mac.patch [bz#1118665] -- kvm-rhel-pci-serial.prog_if-0-for-machine-types-7.0.patch [bz#1118665] -- kvm-rhel-virtio-net-pci.guest_announce-off-for-machine-t.patch [bz#1118665] -- kvm-rhel-ICH9-LPC.memory-hotplug-support-off-for-machine.patch [bz#1118665] -- kvm-rhel-.power_controller_present-off-for-machine-types.patch [bz#1118665] -- kvm-rhel-virtio-net-pci.ctrl_guest_offloads-off-for-mach.patch [bz#1118665] -- kvm-pc-q35-rhel7.0.0-Disable-x2apic-default.patch [bz#1118665] -- Resolves: bz#1076326 - (qemu-kvm does not quit when booting guest w/ 161 vcpus and "-no-kvm") -- Resolves: bz#1118665 - (Migration: rhel7.0->rhev7.1) - -* Sat Aug 02 2014 Miroslav Rezanina - rhev-2.1.0-1.el7 -- Rebase to 2.1.0 [bz#1121609] -- Resolves: bz#1121609 - (Rebase qemu-kvm-rhev to qemu 2.1) - -* Wed Jul 09 2014 Miroslav Rezanina - rhev-2.0.0-3.el7 -- kvm-Remove-CONFIG_NE2000_ISA-from-all-config-files.patch [] -- kvm-Fix-conditional-rpmbuild.patch [] -- kvm-RHEL7-RHEV7.1-2.0-migration-compatibility.patch [bz#1085950] -- kvm-remove-superfluous-.hot_add_cpu-and-.max_cpus-initia.patch [bz#1085950] -- kvm-set-model-in-PC_RHEL6_5_COMPAT-for-qemu32-VCPU-RHEV-.patch [bz#1085950] -- kvm-Undo-Enable-x2apic-by-default-for-compatibility.patch [bz#1085950] -- kvm-qemu_loadvm_state-shadow-SeaBIOS-for-VM-incoming-fro.patch [bz#1103579] -- Resolves: bz#1085950 - (Migration/virtio-net: 7.0->vp-2.0-rc2: Mix of migration issues) -- Resolves: bz#1103579 - (fail to reboot guest after migration from RHEL6.5 host to RHEL7.0 host) - -* Fri May 30 2014 Miroslav Rezanina - rhev-2.0.0-2.el7 -- kvm-pc-add-hot_add_cpu-callback-to-all-machine-types.patch [bz#1093411] -- Resolves: bz#1093411 - (Hot unplug CPU not working for RHEL7 host) - -* Fri Apr 18 2014 Miroslav Rezanina - 2.0.0-1.el7ev -- Rebase to qemu 2.0.0 - -* Wed Apr 02 2014 Miroslav Rezanina - 1.5.3-60.el7 -- kvm-qcow2-fix-dangling-refcount-table-entry.patch [bz#1081793] -- kvm-qcow2-link-all-L2-meta-updates-in-preallocate.patch [bz#1081393] -- Resolves: bz#1081393 - (qemu-img will prompt that 'leaked clusters were found' while creating images with '-o preallocation=metadata,cluster_size<=1024') -- Resolves: bz#1081793 - (qemu-img core dumped when creating a qcow2 image base on block device(iscsi or libiscsi)) - -* Wed Mar 26 2014 Miroslav Rezanina - 1.5.3-59.el7 -- kvm-qemu-iotests-add-.-check-cloop-support.patch [bz#1066691] -- kvm-qemu-iotests-add-cloop-input-validation-tests.patch [bz#1066691] -- kvm-block-cloop-validate-block_size-header-field-CVE-201.patch [bz#1079455] -- kvm-block-cloop-prevent-offsets_size-integer-overflow-CV.patch [bz#1079320] -- kvm-block-cloop-refuse-images-with-huge-offsets-arrays-C.patch [bz#1079455] -- kvm-block-cloop-refuse-images-with-bogus-offsets-CVE-201.patch [bz#1079455] -- kvm-size-off-by-one.patch [bz#1066691] -- kvm-qemu-iotests-Support-for-bochs-format.patch [bz#1066691] -- kvm-bochs-Unify-header-structs-and-make-them-QEMU_PACKED.patch [bz#1066691] -- kvm-bochs-Use-unsigned-variables-for-offsets-and-sizes-C.patch [bz#1079339] -- kvm-bochs-Check-catalog_size-header-field-CVE-2014-0143.patch [bz#1079320] -- kvm-bochs-Check-extent_size-header-field-CVE-2014-0142.patch [bz#1079315] -- kvm-bochs-Fix-bitmap-offset-calculation.patch [bz#1066691] -- kvm-vpc-vhd-add-bounds-check-for-max_table_entries-and-b.patch [bz#1079455] -- kvm-vpc-Validate-block-size-CVE-2014-0142.patch [bz#1079315] -- kvm-vdi-add-bounds-checks-for-blocks_in_image-and-disk_s.patch [bz#1079455] -- kvm-vhdx-Bounds-checking-for-block_size-and-logical_sect.patch [bz#1079346] -- kvm-curl-check-data-size-before-memcpy-to-local-buffer.-.patch [bz#1079455] -- kvm-qcow2-Check-header_length-CVE-2014-0144.patch [bz#1079455] -- kvm-qcow2-Check-backing_file_offset-CVE-2014-0144.patch [bz#1079455] -- kvm-qcow2-Check-refcount-table-size-CVE-2014-0144.patch [bz#1079455] -- kvm-qcow2-Validate-refcount-table-offset.patch [bz#1066691] -- kvm-qcow2-Validate-snapshot-table-offset-size-CVE-2014-0.patch [bz#1079455] -- kvm-qcow2-Validate-active-L1-table-offset-and-size-CVE-2.patch [bz#1079455] -- kvm-qcow2-Fix-backing-file-name-length-check.patch [bz#1066691] -- kvm-qcow2-Don-t-rely-on-free_cluster_index-in-alloc_refc.patch [bz#1079339] -- kvm-qcow2-Avoid-integer-overflow-in-get_refcount-CVE-201.patch [bz#1079320] -- kvm-qcow2-Check-new-refcount-table-size-on-growth.patch [bz#1066691] -- kvm-qcow2-Fix-types-in-qcow2_alloc_clusters-and-alloc_cl.patch [bz#1066691] -- kvm-qcow2-Protect-against-some-integer-overflows-in-bdrv.patch [bz#1066691] -- kvm-qcow2-Fix-new-L1-table-size-check-CVE-2014-0143.patch [bz#1079320] -- kvm-dmg-coding-style-and-indentation-cleanup.patch [bz#1066691] -- kvm-dmg-prevent-out-of-bounds-array-access-on-terminator.patch [bz#1066691] -- kvm-dmg-drop-broken-bdrv_pread-loop.patch [bz#1066691] -- kvm-dmg-use-appropriate-types-when-reading-chunks.patch [bz#1066691] -- kvm-dmg-sanitize-chunk-length-and-sectorcount-CVE-2014-0.patch [bz#1079325] -- kvm-dmg-use-uint64_t-consistently-for-sectors-and-length.patch [bz#1066691] -- kvm-dmg-prevent-chunk-buffer-overflow-CVE-2014-0145.patch [bz#1079325] -- kvm-block-vdi-bounds-check-qemu-io-tests.patch [bz#1066691] -- kvm-block-Limit-request-size-CVE-2014-0143.patch [bz#1079320] -- kvm-qcow2-Fix-copy_sectors-with-VM-state.patch [bz#1066691] -- kvm-qcow2-Fix-NULL-dereference-in-qcow2_open-error-path-.patch [bz#1079333] -- kvm-qcow2-Fix-L1-allocation-size-in-qcow2_snapshot_load_.patch [bz#1079325] -- kvm-qcow2-Check-maximum-L1-size-in-qcow2_snapshot_load_t.patch [bz#1079320] -- kvm-qcow2-Limit-snapshot-table-size.patch [bz#1066691] -- kvm-parallels-Fix-catalog-size-integer-overflow-CVE-2014.patch [bz#1079320] -- kvm-parallels-Sanity-check-for-s-tracks-CVE-2014-0142.patch [bz#1079315] -- kvm-fix-machine-check-propagation.patch [bz#740107] -- Resolves: bz#1066691 - (qemu-kvm: include leftover patches from block layer security audit) -- Resolves: bz#1079315 - (CVE-2014-0142 qemu-kvm: qemu: crash by possible division by zero [rhel-7.0]) -- Resolves: bz#1079320 - (CVE-2014-0143 qemu-kvm: Qemu: block: multiple integer overflow flaws [rhel-7.0]) -- Resolves: bz#1079325 - (CVE-2014-0145 qemu-kvm: Qemu: prevent possible buffer overflows [rhel-7.0]) -- Resolves: bz#1079333 - (CVE-2014-0146 qemu-kvm: Qemu: qcow2: NULL dereference in qcow2_open() error path [rhel-7.0]) -- Resolves: bz#1079339 - (CVE-2014-0147 qemu-kvm: Qemu: block: possible crash due signed types or logic error [rhel-7.0]) -- Resolves: bz#1079346 - (CVE-2014-0148 qemu-kvm: Qemu: vhdx: bounds checking for block_size and logical_sector_size [rhel-7.0]) -- Resolves: bz#1079455 - (CVE-2014-0144 qemu-kvm: Qemu: block: missing input validation [rhel-7.0]) -- Resolves: bz#740107 - ([Hitachi 7.0 FEAT] KVM: MCA Recovery for KVM guest OS memory) - -* Wed Mar 26 2014 Miroslav Rezanina - 1.5.3-58.el7 -- kvm-pc-Use-cpu64-rhel6-CPU-model-by-default-on-rhel6-mac.patch [bz#1080170] -- kvm-target-i386-Copy-cpu64-rhel6-definition-into-qemu64.patch [bz#1078607 bz#1080170] -- Resolves: bz#1080170 - (intel 82576 VF not work in windows 2008 x86 - Code 12 [TestOnly]) -- Resolves: bz#1080170 - (Default CPU model for rhel6.* machine-types is different from RHEL-6) - -* Fri Mar 21 2014 Miroslav Rezanina - 1.5.3-57.el7 -- kvm-virtio-net-fix-guest-triggerable-buffer-overrun.patch [bz#1078308] -- Resolves: bz#1078308 - (EMBARGOED CVE-2014-0150 qemu: virtio-net: fix guest-triggerable buffer overrun [rhel-7.0]) - -* Fri Mar 21 2014 Miroslav Rezanina - 1.5.3-56.el7 -- kvm-configure-Fix-bugs-preventing-Ceph-inclusion.patch [bz#1078809] -- Resolves: bz#1078809 - (can not boot qemu-kvm-rhev with rbd image) - -* Wed Mar 19 2014 Miroslav Rezanina - 1.5.3-55.el7 -- kvm-scsi-Change-scsi-sense-buf-size-to-252.patch [bz#1058173] -- kvm-scsi-Fix-migration-of-scsi-sense-data.patch [bz#1058173] -- Resolves: bz#1058173 - (qemu-kvm core dump booting guest with scsi-generic disk attached when using built-in iscsi driver) - -* Wed Mar 19 2014 Miroslav Rezanina - 1.5.3-54.el7 -- kvm-qdev-monitor-Set-properties-after-parent-is-assigned.patch [bz#1046248] -- kvm-block-Update-image-size-in-bdrv_invalidate_cache.patch [bz#1048575] -- kvm-qcow2-Keep-option-in-qcow2_invalidate_cache.patch [bz#1048575] -- kvm-qcow2-Check-bs-drv-in-copy_sectors.patch [bz#1048575] -- kvm-block-bs-drv-may-be-NULL-in-bdrv_debug_resume.patch [bz#1048575] -- kvm-iotests-Test-corruption-during-COW-request.patch [bz#1048575] -- Resolves: bz#1046248 - (qemu-kvm crash when send "info qtree" after hot plug a device with invalid addr) -- Resolves: bz#1048575 - (Segmentation fault occurs after migrate guest(use scsi disk and add stress) to des machine) - -* Wed Mar 12 2014 Miroslav Rezanina - 1.5.3-53.el7 -- kvm-dataplane-Fix-startup-race.patch [bz#1069541] -- kvm-QMP-Relax-__com.redhat_drive_add-parameter-checking.patch [bz#1057471] -- kvm-all-exit-in-case-max-vcpus-exceeded.patch [bz#993429] -- kvm-block-gluster-code-movements-state-storage-changes.patch [bz#1031526] -- kvm-block-gluster-add-reopen-support.patch [bz#1031526] -- kvm-virtio-net-add-feature-bit-for-any-header-s-g.patch [bz#990989] -- kvm-spec-Add-README.rhel6-gpxe-source.patch [bz#1073774] -- kvm-pc-Add-RHEL6-e1000-gPXE-image.patch [bz#1073774] -- kvm-loader-rename-in_ram-has_mr.patch [bz#1064018] -- kvm-pc-avoid-duplicate-names-for-ROM-MRs.patch [bz#1064018] -- kvm-qemu-img-convert-Fix-progress-output.patch [bz#1073728] -- kvm-qemu-iotests-Test-progress-output-for-conversion.patch [bz#1073728] -- kvm-iscsi-Use-bs-sg-for-everything-else-than-disks.patch [bz#1067784] -- kvm-block-Fix-bs-request_alignment-assertion-for-bs-sg-1.patch [bz#1067784] -- kvm-qemu_file-use-fwrite-correctly.patch [bz#1005103] -- kvm-qemu_file-Fix-mismerge-of-use-fwrite-correctly.patch [bz#1005103] -- Resolves: bz#1005103 - (Migration should fail when migrate guest offline to a file which is specified to a readonly directory.) -- Resolves: bz#1031526 - (Can not commit snapshot when disk is using glusterfs:native backend) -- Resolves: bz#1057471 - (fail to do hot-plug with "discard = on" with "Invalid parameter 'discard'" error) -- Resolves: bz#1064018 - (abort from conflicting genroms) -- Resolves: bz#1067784 - (qemu-kvm: block.c:850: bdrv_open_common: Assertion `bs->request_alignment != 0' failed. Aborted (core dumped)) -- Resolves: bz#1069541 - (Segmentation fault when boot guest with dataplane=on) -- Resolves: bz#1073728 - (progress bar doesn't display when converting with -p) -- Resolves: bz#1073774 - (e1000 ROM cause migrate fail from RHEL6.5 host to RHEL7.0 host) -- Resolves: bz#990989 - (backport inline header virtio-net optimization) -- Resolves: bz#993429 - (kvm: test maximum number of vcpus supported (rhel7)) - -* Wed Mar 05 2014 Miroslav Rezanina - 1.5.3-52.el7 -- kvm-target-i386-Move-hyperv_-static-globals-to-X86CPU.patch [bz#1004773] -- kvm-Fix-uninitialized-cpuid_data.patch [bz#1057173] -- kvm-fix-coexistence-of-KVM-and-Hyper-V-leaves.patch [bz#1004773] -- kvm-make-availability-of-Hyper-V-enlightenments-depe.patch [bz#1004773] -- kvm-make-hyperv-hypercall-and-guest-os-id-MSRs-migra.patch [bz#1004773] -- kvm-make-hyperv-vapic-assist-page-migratable.patch [bz#1004773] -- kvm-target-i386-Convert-hv_relaxed-to-static-property.patch [bz#1057173] -- kvm-target-i386-Convert-hv_vapic-to-static-property.patch [bz#1057173] -- kvm-target-i386-Convert-hv_spinlocks-to-static-property.patch [bz#1057173] -- kvm-target-i386-Convert-check-and-enforce-to-static-prop.patch [bz#1004773] -- kvm-target-i386-Cleanup-foo-feature-handling.patch [bz#1057173] -- kvm-add-support-for-hyper-v-timers.patch [bz#1057173] -- Resolves: bz#1004773 - (Hyper-V guest OS id and hypercall MSRs not migrated) -- Resolves: bz#1057173 - (KVM Hyper-V Enlightenment - New feature - hv-time (QEMU)) - -* Wed Mar 05 2014 Miroslav Rezanina - 1.5.3-51.el7 -- kvm-qmp-access-the-local-QemuOptsLists-for-drive-option.patch [bz#1026184] -- kvm-qxl-add-sanity-check.patch [bz#751937] -- kvm-Fix-two-XBZRLE-corruption-issues.patch [bz#1063417] -- kvm-qdev-monitor-set-DeviceState-opts-before-calling-rea.patch [bz#1037956] -- kvm-vfio-blacklist-loading-of-unstable-roms.patch [bz#1037956] -- kvm-block-Set-block-filename-sizes-to-PATH_MAX-instead-o.patch [bz#1072339] -- Resolves: bz#1026184 - (QMP: querying -drive option returns a NULL parameter list) -- Resolves: bz#1037956 - (bnx2x: boot one guest to do vfio-pci with all PFs assigned in same group meet QEMU segmentation fault (Broadcom BCM57810 card)) -- Resolves: bz#1063417 - (google stressapptest vs Migration) -- Resolves: bz#1072339 - (RHEV: Cannot start VMs that have more than 23 snapshots.) -- Resolves: bz#751937 - (qxl triggers assert during iofuzz test) - -* Wed Feb 26 2014 Miroslav Rezanina - 1.5.3-50.el7 -- kvm-mempath-prefault-fix-off-by-one-error.patch [bz#1069039] -- kvm-qemu-option-has_help_option-and-is_valid_option_list.patch [bz#1065873] -- kvm-qemu-img-create-Support-multiple-o-options.patch [bz#1065873] -- kvm-qemu-img-convert-Support-multiple-o-options.patch [bz#1065873] -- kvm-qemu-img-amend-Support-multiple-o-options.patch [bz#1065873] -- kvm-qemu-img-Allow-o-help-with-incomplete-argument-list.patch [bz#1065873] -- kvm-qemu-iotests-Check-qemu-img-command-line-parsing.patch [bz#1065873] -- Resolves: bz#1065873 - (qemu-img silently ignores options with multiple -o parameters) -- Resolves: bz#1069039 - (-mem-prealloc option behaviour is opposite to expected) - -* Wed Feb 19 2014 Miroslav Rezanina - 1.5.3-49.el7 -- kvm-xhci-add-support-for-suspend-resume.patch [bz#1012365] -- kvm-qcow2-remove-n_start-and-n_end-of-qcow2_alloc_cluste.patch [bz#1049176] -- kvm-qcow2-fix-offset-overflow-in-qcow2_alloc_clusters_at.patch [bz#1049176] -- kvm-qcow2-check-for-NULL-l2meta.patch [bz#1055848] -- kvm-qemu-iotests-add-test-for-qcow2-preallocation-with-d.patch [bz#1055848] -- Resolves: bz#1012365 - (xhci usb storage lost in guest after wakeup from S3) -- Resolves: bz#1049176 - (qemu-img core dump when using "-o preallocation=metadata,cluster_size=2048k" to create image of libiscsi lun) -- Resolves: bz#1055848 - (qemu-img core dumped when cluster size is larger than the default value with opreallocation=metadata specified) - -* Mon Feb 17 2014 Miroslav Rezanina - 1.5.3-48.el7 -- kvm-spec-disable-qom-cast-debug.patch [bz#1063942] -- kvm-fix-guest-physical-bits-to-match-host-to-go-beyond-1.patch [bz#989677] -- kvm-monitor-Cleanup-mon-outbuf-on-write-error.patch [bz#1065225] -- Resolves: bz#1063942 - (configure qemu-kvm with --disable-qom-cast-debug) -- Resolves: bz#1065225 - (QMP socket breaks on unexpected close) -- Resolves: bz#989677 - ([HP 7.0 FEAT]: Increase KVM guest supported memory to 4TiB) - -* Wed Feb 12 2014 Miroslav Rezanina - 1.5.3-47.el7 -- kvm-seccomp-add-mkdir-and-fchmod-to-the-whitelist.patch [bz#1026314] -- kvm-seccomp-add-some-basic-shared-memory-syscalls-to-the.patch [bz#1026314] -- kvm-scsi-Support-TEST-UNIT-READY-in-the-dummy-LUN0.patch [bz#1004143] -- kvm-usb-add-vendor-request-defines.patch [bz#1039530] -- kvm-usb-move-usb_-hi-lo-helpers-to-header-file.patch [bz#1039530] -- kvm-usb-add-support-for-microsoft-os-descriptors.patch [bz#1039530] -- kvm-usb-add-microsoft-os-descriptors-compat-property.patch [bz#1039530] -- kvm-usb-hid-add-microsoft-os-descriptor-support.patch [bz#1039530] -- kvm-configure-add-option-to-disable-fstack-protect.patch [bz#1044182] -- kvm-exec-always-use-MADV_DONTFORK.patch [bz#1004197] -- kvm-pc-Save-size-of-RAM-below-4GB.patch [bz#1048080] -- kvm-acpi-Fix-PCI-hole-handling-on-build_srat.patch [bz#1048080] -- kvm-Add-check-for-cache-size-smaller-than-page-size.patch [bz#1017096] -- kvm-XBZRLE-cache-size-should-not-be-larger-than-guest-me.patch [bz#1047448] -- kvm-Don-t-abort-on-out-of-memory-when-creating-page-cach.patch [bz#1047448] -- kvm-Don-t-abort-on-memory-allocation-error.patch [bz#1047448] -- kvm-Set-xbzrle-buffers-to-NULL-after-freeing-them-to-avo.patch [bz#1038540] -- kvm-migration-fix-free-XBZRLE-decoded_buf-wrong.patch [bz#1038540] -- kvm-block-resize-backing-file-image-during-offline-commi.patch [bz#1047254] -- kvm-block-resize-backing-image-during-active-layer-commi.patch [bz#1047254] -- kvm-block-update-block-commit-documentation-regarding-im.patch [bz#1047254] -- kvm-block-Fix-bdrv_commit-return-value.patch [bz#1047254] -- kvm-block-remove-QED-.bdrv_make_empty-implementation.patch [bz#1047254] -- kvm-block-remove-qcow2-.bdrv_make_empty-implementation.patch [bz#1047254] -- kvm-qemu-progress-Drop-unused-include.patch [bz#997878] -- kvm-qemu-progress-Fix-progress-printing-on-SIGUSR1.patch [bz#997878] -- kvm-Documentation-qemu-img-Mention-SIGUSR1-progress-repo.patch [bz#997878] -- Resolves: bz#1004143 - ("test unit ready failed" on LUN 0 delays boot when a virtio-scsi target does not have any disk on LUN 0) -- Resolves: bz#1004197 - (Cannot hot-plug nic in windows VM when the vmem is larger) -- Resolves: bz#1017096 - (Fail to migrate while the size of migrate-compcache less then 4096) -- Resolves: bz#1026314 - (qemu-kvm hang when use '-sandbox on'+'vnc'+'hda') -- Resolves: bz#1038540 - (qemu-kvm aborted while cancel migration then restart it (with page delta compression)) -- Resolves: bz#1039530 - (add support for microsoft os descriptors) -- Resolves: bz#1044182 - (Relax qemu-kvm stack protection to -fstack-protector-strong) -- Resolves: bz#1047254 - (qemu-img failed to commit image) -- Resolves: bz#1047448 - (qemu-kvm core dump in src host when do migration with "migrate_set_capability xbzrle on and migrate_set_cache_size 10000G") -- Resolves: bz#1048080 - (Qemu-kvm NUMA emulation failed) -- Resolves: bz#997878 - (Kill -SIGUSR1 `pidof qemu-img convert` can not get progress of qemu-img) - -* Wed Feb 12 2014 Miroslav Rezanina - 1.5.3-46.el7 -- kvm-block-fix-backing-file-segfault.patch [bz#748906] -- kvm-block-Move-initialisation-of-BlockLimits-to-bdrv_ref.patch [bz#748906] -- kvm-raw-Fix-BlockLimits-passthrough.patch [bz#748906] -- kvm-block-Inherit-opt_transfer_length.patch [bz#748906] -- kvm-block-Update-BlockLimits-when-they-might-have-change.patch [bz#748906] -- kvm-qemu_memalign-Allow-small-alignments.patch [bz#748906] -- kvm-block-Detect-unaligned-length-in-bdrv_qiov_is_aligne.patch [bz#748906] -- kvm-block-Don-t-use-guest-sector-size-for-qemu_blockalig.patch [bz#748906] -- kvm-block-rename-buffer_alignment-to-guest_block_size.patch [bz#748906] -- kvm-raw-Probe-required-direct-I-O-alignment.patch [bz#748906] -- kvm-block-Introduce-bdrv_aligned_preadv.patch [bz#748906] -- kvm-block-Introduce-bdrv_co_do_preadv.patch [bz#748906] -- kvm-block-Introduce-bdrv_aligned_pwritev.patch [bz#748906] -- kvm-block-write-Handle-COR-dependency-after-I-O-throttli.patch [bz#748906] -- kvm-block-Introduce-bdrv_co_do_pwritev.patch [bz#748906] -- kvm-block-Switch-BdrvTrackedRequest-to-byte-granularity.patch [bz#748906] -- kvm-block-Allow-waiting-for-overlapping-requests-between.patch [bz#748906] -- kvm-block-use-DIV_ROUND_UP-in-bdrv_co_do_readv.patch [bz#748906] -- kvm-block-Make-zero-after-EOF-work-with-larger-alignment.patch [bz#748906] -- kvm-block-Generalise-and-optimise-COR-serialisation.patch [bz#748906] -- kvm-block-Make-overlap-range-for-serialisation-dynamic.patch [bz#748906] -- kvm-block-Fix-32-bit-truncation-in-mark_request_serialis.patch [bz#748906] -- kvm-block-Allow-wait_serialising_requests-at-any-point.patch [bz#748906] -- kvm-block-Align-requests-in-bdrv_co_do_pwritev.patch [bz#748906] -- kvm-lock-Fix-memory-leaks-in-bdrv_co_do_pwritev.patch [bz#748906] -- kvm-block-Assert-serialisation-assumptions-in-pwritev.patch [bz#748906] -- kvm-block-Change-coroutine-wrapper-to-byte-granularity.patch [bz#748906] -- kvm-block-Make-bdrv_pread-a-bdrv_prwv_co-wrapper.patch [bz#748906] -- kvm-block-Make-bdrv_pwrite-a-bdrv_prwv_co-wrapper.patch [bz#748906] -- kvm-iscsi-Set-bs-request_alignment.patch [bz#748906] -- kvm-blkdebug-Make-required-alignment-configurable.patch [bz#748906] -- kvm-blkdebug-Don-t-leak-bs-file-on-failure.patch [bz#748906] -- kvm-qemu-io-New-command-sleep.patch [bz#748906] -- kvm-qemu-iotests-Filter-out-qemu-io-prompt.patch [bz#748906] -- kvm-qemu-iotests-Test-pwritev-RMW-logic.patch [bz#748906] -- kvm-block-bdrv_aligned_pwritev-Assert-overlap-range.patch [bz#748906] -- kvm-block-Don-t-call-ROUND_UP-with-negative-values.patch [bz#748906] -- Resolves: bz#748906 - (qemu fails on disk with 4k sectors and cache=off) - -* Wed Feb 05 2014 Miroslav Rezanina - 1.5.3-45.el7 -- kvm-vfio-pci-Fail-initfn-on-DMA-mapping-errors.patch [bz#1044815] -- kvm-vfio-Destroy-memory-regions.patch [bz#1052030] -- kvm-docs-qcow2-compat-1.1-is-now-the-default.patch [bz#1048092] -- kvm-hda-codec-disable-streams-on-reset.patch [bz#947812] -- kvm-QEMUBH-make-AioContext-s-bh-re-entrant.patch [bz#1009297] -- kvm-qxl-replace-pipe-signaling-with-bottom-half.patch [bz#1009297] -- Resolves: bz#1009297 - (RHEL7.0 guest gui can not be used in dest host after migration) -- Resolves: bz#1044815 - (vfio initfn succeeds even if IOMMU mappings fail) -- Resolves: bz#1048092 - (manpage of qemu-img contains error statement about compat option) -- Resolves: bz#1052030 - (src qemu-kvm core dump after hotplug/unhotplug GPU device and do local migration) -- Resolves: bz#947812 - (There's a shot voice after 'system_reset' during playing music inside rhel6 guest w/ intel-hda device) - -* Wed Jan 29 2014 Miroslav Rezanina - 1.5.3-44.el7 -- kvm-Partially-revert-rhel-Drop-cfi.pflash01-and-isa-ide-.patch [bz#1032346] -- kvm-Revert-pc-Disable-the-use-flash-device-for-BIOS-unle.patch [bz#1032346] -- kvm-memory-Replace-open-coded-memory_region_is_romd.patch [bz#1032346] -- kvm-memory-Rename-readable-flag-to-romd_mode.patch [bz#1032346] -- kvm-isapc-Fix-non-KVM-qemu-boot-read-write-memory-for-is.patch [bz#1032346] -- kvm-add-kvm_readonly_mem_enabled.patch [bz#1032346] -- kvm-support-using-KVM_MEM_READONLY-flag-for-regions.patch [bz#1032346] -- kvm-pc_sysfw-allow-flash-pflash-memory-to-be-used-with-K.patch [bz#1032346] -- kvm-fix-double-free-the-memslot-in-kvm_set_phys_mem.patch [bz#1032346] -- kvm-sysfw-remove-read-only-pc_sysfw_flash_vs_rom_bug_com.patch [bz#1032346] -- kvm-pc_sysfw-remove-the-rom_only-property.patch [bz#1032346] -- kvm-pc_sysfw-do-not-make-it-a-device-anymore.patch [bz#1032346] -- kvm-hw-i386-pc_sysfw-support-two-flash-drives.patch [bz#1032346] -- kvm-i440fx-test-qtest_start-should-be-paired-with-qtest_.patch [bz#1032346] -- kvm-i440fx-test-give-each-GTest-case-its-own-qtest.patch [bz#1032346] -- kvm-i440fx-test-generate-temporary-firmware-blob.patch [bz#1032346] -- kvm-i440fx-test-verify-firmware-under-4G-and-1M-both-bio.patch [bz#1032346] -- kvm-piix-fix-32bit-pci-hole.patch [bz#1032346] -- kvm-qapi-Add-backing-to-BlockStats.patch [bz#1041564] -- kvm-pc-Disable-RDTSCP-unconditionally-on-rhel6.-machine-.patch [bz#918907] -- kvm-pc-Disable-RDTSCP-on-AMD-CPU-models.patch [bz#1056428 bz#874400] -- kvm-block-add-.bdrv_reopen_prepare-stub-for-iscsi.patch [bz#1030301] -- Resolves: bz#1030301 - (qemu-img can not merge live snapshot to backing file(r/w backing file via libiscsi)) -- Resolves: bz#1032346 - (basic OVMF support (non-volatile UEFI variables in flash, and fixup for ACPI tables)) -- Resolves: bz#1041564 - ([NFR] qemu: Returning the watermark for all the images opened for writing) -- Resolves: bz#1056428 - ("rdtscp" flag defined on Opteron_G5 model and cann't be exposed to guest) -- Resolves: bz#874400 - ("rdtscp" flag defined on Opteron_G5 model and cann't be exposed to guest) -- Resolves: bz#918907 - (provide backwards-compatible RHEL specific machine types in QEMU - CPU features) - -* Mon Jan 27 2014 Miroslav Rezanina - 1.5.3-43.el7 -- kvm-piix-gigabyte-alignment-for-ram.patch [bz#1026548] -- kvm-pc_piix-document-gigabyte_align.patch [bz#1026548] -- kvm-q35-gigabyle-alignment-for-ram.patch [bz#1026548] -- kvm-virtio-bus-remove-vdev-field.patch [bz#983344] -- kvm-virtio-pci-remove-vdev-field.patch [bz#983344] -- kvm-virtio-bus-cleanup-plug-unplug-interface.patch [bz#983344] -- kvm-virtio-blk-switch-exit-callback-to-VirtioDeviceClass.patch [bz#983344] -- kvm-virtio-serial-switch-exit-callback-to-VirtioDeviceCl.patch [bz#983344] -- kvm-virtio-net-switch-exit-callback-to-VirtioDeviceClass.patch [bz#983344] -- kvm-virtio-scsi-switch-exit-callback-to-VirtioDeviceClas.patch [bz#983344] -- kvm-virtio-balloon-switch-exit-callback-to-VirtioDeviceC.patch [bz#983344] -- kvm-virtio-rng-switch-exit-callback-to-VirtioDeviceClass.patch [bz#983344] -- kvm-virtio-pci-add-device_unplugged-callback.patch [bz#983344] -- kvm-block-use-correct-filename-for-error-report.patch [bz#1051438] -- Resolves: bz#1026548 - (i386: pc: align gpa<->hpa on 1GB boundary) -- Resolves: bz#1051438 - (Error message contains garbled characters when unable to open image due to bad permissions (permission denied).) -- Resolves: bz#983344 - (QEMU core dump and host will reboot when do hot-unplug a virtio-blk disk which use the switch behind switch) - -* Fri Jan 24 2014 Daniel Mach - 10:1.5.3-42 -- Mass rebuild 2014-01-24 - -* Wed Jan 22 2014 Miroslav Rezanina - 1.5.3-41.el7 -- kvm-help-add-id-suboption-to-iscsi.patch [bz#1019221] -- kvm-scsi-disk-add-UNMAP-limits-to-block-limits-VPD-page.patch [bz#1037503] -- kvm-qdev-Fix-32-bit-compilation-in-print_size.patch [bz#1034876] -- kvm-qdev-Use-clz-in-print_size.patch [bz#1034876] -- Resolves: bz#1019221 - (Iscsi miss id sub-option in help output) -- Resolves: bz#1034876 - (export acpi tables to guests) -- Resolves: bz#1037503 - (fix thin provisioning support for block device backends) - -* Wed Jan 22 2014 Miroslav Rezanina - 1.5.3-40.el7 -- kvm-avoid-a-bogus-COMPLETED-CANCELLED-transition.patch [bz#1053699] -- kvm-introduce-MIG_STATE_CANCELLING-state.patch [bz#1053699] -- kvm-vvfat-use-bdrv_new-to-allocate-BlockDriverState.patch [bz#1041301] -- kvm-block-implement-reference-count-for-BlockDriverState.patch [bz#1041301] -- kvm-block-make-bdrv_delete-static.patch [bz#1041301] -- kvm-migration-omit-drive-ref-as-we-have-bdrv_ref-now.patch [bz#1041301] -- kvm-xen_disk-simplify-blk_disconnect-with-refcnt.patch [bz#1041301] -- kvm-nbd-use-BlockDriverState-refcnt.patch [bz#1041301] -- kvm-block-use-BDS-ref-for-block-jobs.patch [bz#1041301] -- kvm-block-Make-BlockJobTypes-const.patch [bz#1041301] -- kvm-blockjob-rename-BlockJobType-to-BlockJobDriver.patch [bz#1041301] -- kvm-qapi-Introduce-enum-BlockJobType.patch [bz#1041301] -- kvm-qapi-make-use-of-new-BlockJobType.patch [bz#1041301] -- kvm-mirror-Don-t-close-target.patch [bz#1041301] -- kvm-mirror-Move-base-to-MirrorBlockJob.patch [bz#1041301] -- kvm-block-Add-commit_active_start.patch [bz#1041301] -- kvm-commit-Support-commit-active-layer.patch [bz#1041301] -- kvm-qemu-iotests-prefill-some-data-to-test-image.patch [bz#1041301] -- kvm-qemu-iotests-Update-test-cases-for-commit-active.patch [bz#1041301] -- kvm-commit-Remove-unused-check.patch [bz#1041301] -- kvm-blockdev-use-bdrv_getlength-in-qmp_drive_mirror.patch [bz#921890] -- kvm-qemu-iotests-make-assert_no_active_block_jobs-common.patch [bz#921890] -- kvm-block-drive-mirror-Check-for-NULL-backing_hd.patch [bz#921890] -- kvm-qemu-iotests-Extend-041-for-unbacked-mirroring.patch [bz#921890] -- kvm-qapi-schema-Update-description-for-NewImageMode.patch [bz#921890] -- kvm-block-drive-mirror-Reuse-backing-HD-for-sync-none.patch [bz#921890] -- kvm-qemu-iotests-Fix-test-041.patch [bz#921890] -- kvm-scsi-bus-fix-transfer-length-and-direction-for-VERIF.patch [bz#1035644] -- kvm-scsi-disk-fix-VERIFY-emulation.patch [bz#1035644] -- kvm-block-ensure-bdrv_drain_all-works-during-bdrv_delete.patch [bz#1041301] -- kvm-use-recommended-max-vcpu-count.patch [bz#998708] -- kvm-pc-Create-pc_compat_rhel-functions.patch [bz#1049706] -- kvm-pc-Enable-x2apic-by-default-on-more-recent-CPU-model.patch [bz#1049706] -- kvm-Build-all-subpackages-for-RHEV.patch [bz#1007204] -- Resolves: bz#1007204 - (qemu-img-rhev qemu-kvm-rhev-tools are not built for qemu-kvm-1.5.3-3.el7) -- Resolves: bz#1035644 - (rhel7.0host + windows guest + virtio-win + 'chkdsk' in the guest gives qemu assertion in scsi_dma_complete) -- Resolves: bz#1041301 - (live snapshot merge (commit) of the active layer) -- Resolves: bz#1049706 - (MIss CPUID_EXT_X2APIC in Westmere cpu model) -- Resolves: bz#1053699 - (Backport Cancelled race condition fixes) -- Resolves: bz#921890 - (Core dump when block mirror with "sync" is "none" and mode is "absolute-paths") -- Resolves: bz#998708 - (qemu-kvm: maximum vcpu should be recommended maximum) - -* Tue Jan 21 2014 Miroslav Rezanina - 1.5.3-39.el7 -- kvm-Revert-qdev-monitor-Fix-crash-when-device_add-is-cal.patch [bz#669524] -- kvm-Revert-qdev-Do-not-let-the-user-try-to-device_add-wh.patch [bz#669524] -- kvm-qdev-monitor-Clean-up-qdev_device_add-variable-namin.patch [bz#669524] -- kvm-qdev-monitor-Fix-crash-when-device_add-is-called.2.patch.patch [bz#669524] -- kvm-qdev-monitor-Avoid-qdev-as-variable-name.patch [bz#669524] -- kvm-qdev-monitor-Inline-qdev_init-for-device_add.patch [bz#669524] -- kvm-qdev-Do-not-let-the-user-try-to-device_add-when-it.2.patch.patch [bz#669524] -- kvm-qdev-monitor-Avoid-device_add-crashing-on-non-device.patch [bz#669524] -- kvm-qdev-monitor-Improve-error-message-for-device-nonexi.patch [bz#669524] -- kvm-exec-change-well-known-physical-sections-to-macros.patch [bz#1003535] -- kvm-exec-separate-sections-and-nodes-per-address-space.patch [bz#1003535] -- Resolves: bz#1003535 - (qemu-kvm core dump when boot vm with more than 32 virtio disks/nics) -- Resolves: bz#669524 - (Confusing error message from -device ) - -* Fri Jan 17 2014 Miroslav Rezanina - 1.5.3-38.el7 -- kvm-intel-hda-fix-position-buffer.patch [bz#947785] -- kvm-The-calculation-of-bytes_xfer-in-qemu_put_buffer-is-.patch [bz#1003467] -- kvm-migration-Fix-rate-limit.patch [bz#1003467] -- kvm-audio-honor-QEMU_AUDIO_TIMER_PERIOD-instead-of-wakin.patch [bz#1017636] -- kvm-audio-Lower-default-wakeup-rate-to-100-times-second.patch [bz#1017636] -- kvm-audio-adjust-pulse-to-100Hz-wakeup-rate.patch [bz#1017636] -- kvm-pc-Fix-rhel6.-3dnow-3dnowext-compat-bits.patch [bz#918907] -- kvm-add-firmware-to-machine-options.patch [bz#1038603] -- kvm-switch-rhel7-machine-types-to-big-bios.patch [bz#1038603] -- kvm-add-bios-256k.bin-from-seabios-bin-1.7.2.2-10.el7.no.patch [bz#1038603] -- kvm-pci-fix-pci-bridge-fw-path.patch [bz#1034518] -- kvm-hw-cannot_instantiate_with_device_add_yet-due-to-poi.patch [bz#1031098] -- kvm-qdev-Document-that-pointer-properties-kill-device_ad.patch [bz#1031098] -- kvm-Add-back-no-hpet-but-ignore-it.patch [bz#1044742] -- Resolves: bz#1003467 - (Backport migration fixes from post qemu 1.6) -- Resolves: bz#1017636 - (PATCH: fix qemu using 50% host cpu when audio is playing) -- Resolves: bz#1031098 - (Disable device smbus-eeprom) -- Resolves: bz#1034518 - (boot order wrong with q35) -- Resolves: bz#1038603 - (make seabios 256k for rhel7 machine types) -- Resolves: bz#1044742 - (Cannot create guest on remote RHEL7 host using F20 virt-manager, libvirt's qemu -no-hpet detection is broken) -- Resolves: bz#918907 - (provide backwards-compatible RHEL specific machine types in QEMU - CPU features) -- Resolves: bz#947785 - (In rhel6.4 guest sound recorder doesn't work when playing audio) - -* Wed Jan 15 2014 Miroslav Rezanina - 1.5.3-37.el7 -- kvm-bitmap-use-long-as-index.patch [bz#997559] -- kvm-memory-cpu_physical_memory_set_dirty_flags-result-is.patch [bz#997559] -- kvm-memory-cpu_physical_memory_set_dirty_range-return-vo.patch [bz#997559] -- kvm-exec-use-accessor-function-to-know-if-memory-is-dirt.patch [bz#997559] -- kvm-memory-create-function-to-set-a-single-dirty-bit.patch [bz#997559] -- kvm-exec-drop-useless-if.patch [bz#997559] -- kvm-exec-create-function-to-get-a-single-dirty-bit.patch [bz#997559] -- kvm-memory-make-cpu_physical_memory_is_dirty-return-bool.patch [bz#997559] -- kvm-memory-all-users-of-cpu_physical_memory_get_dirty-us.patch [bz#997559] -- kvm-memory-set-single-dirty-flags-when-possible.patch [bz#997559] -- kvm-memory-cpu_physical_memory_set_dirty_range-always-di.patch [bz#997559] -- kvm-memory-cpu_physical_memory_mask_dirty_range-always-c.patch [bz#997559] -- kvm-memory-use-bit-2-for-migration.patch [bz#997559] -- kvm-memory-make-sure-that-client-is-always-inside-range.patch [bz#997559] -- kvm-memory-only-resize-dirty-bitmap-when-memory-size-inc.patch [bz#997559] -- kvm-memory-cpu_physical_memory_clear_dirty_flag-result-i.patch [bz#997559] -- kvm-bitmap-Add-bitmap_zero_extend-operation.patch [bz#997559] -- kvm-memory-split-dirty-bitmap-into-three.patch [bz#997559] -- kvm-memory-unfold-cpu_physical_memory_clear_dirty_flag-i.patch [bz#997559] -- kvm-memory-unfold-cpu_physical_memory_set_dirty-in-its-o.patch [bz#997559] -- kvm-memory-unfold-cpu_physical_memory_set_dirty_flag.patch [bz#997559] -- kvm-memory-make-cpu_physical_memory_get_dirty-the-main-f.patch [bz#997559] -- kvm-memory-cpu_physical_memory_get_dirty-is-used-as-retu.patch [bz#997559] -- kvm-memory-s-mask-clear-cpu_physical_memory_mask_dirty_r.patch [bz#997559] -- kvm-memory-use-find_next_bit-to-find-dirty-bits.patch [bz#997559] -- kvm-memory-cpu_physical_memory_set_dirty_range-now-uses-.patch [bz#997559] -- kvm-memory-cpu_physical_memory_clear_dirty_range-now-use.patch [bz#997559] -- kvm-memory-s-dirty-clean-in-cpu_physical_memory_is_dirty.patch [bz#997559] -- kvm-memory-make-cpu_physical_memory_reset_dirty-take-a-l.patch [bz#997559] -- kvm-exec-Remove-unused-global-variable-phys_ram_fd.patch [bz#997559] -- kvm-memory-cpu_physical_memory_set_dirty_tracking-should.patch [bz#997559] -- kvm-memory-move-private-types-to-exec.c.patch [bz#997559] -- kvm-memory-split-cpu_physical_memory_-functions-to-its-o.patch [bz#997559] -- kvm-memory-unfold-memory_region_test_and_clear.patch [bz#997559] -- kvm-use-directly-cpu_physical_memory_-api-for-tracki.patch [bz#997559] -- kvm-refactor-start-address-calculation.patch [bz#997559] -- kvm-memory-move-bitmap-synchronization-to-its-own-functi.patch [bz#997559] -- kvm-memory-syncronize-kvm-bitmap-using-bitmaps-operation.patch [bz#997559] -- kvm-ram-split-function-that-synchronizes-a-range.patch [bz#997559] -- kvm-migration-synchronize-memory-bitmap-64bits-at-a-time.patch [bz#997559] -- Resolves: bz#997559 - (Improve live migration bitmap handling) - -* Tue Jan 14 2014 Miroslav Rezanina - 1.5.3-36.el7 -- kvm-Add-support-statement-to-help-output.patch [bz#972773] -- kvm-__com.redhat_qxl_screendump-add-docs.patch [bz#903910] -- kvm-vl-Round-memory-sizes-below-2MiB-up-to-2MiB.patch [bz#999836] -- kvm-seccomp-exit-if-seccomp_init-fails.patch [bz#1044845] -- kvm-redhat-qemu-kvm.spec-require-python-for-build.patch [bz#1034876] -- kvm-redhat-qemu-kvm.spec-require-iasl.patch [bz#1034876] -- kvm-configure-make-iasl-option-actually-work.patch [bz#1034876] -- kvm-redhat-qemu-kvm.spec-add-cpp-as-build-dependency.patch [bz#1034876] -- kvm-acpi-build-disable-with-no-acpi.patch [bz#1045386] -- kvm-ehci-implement-port-wakeup.patch [bz#1039513] -- kvm-qdev-monitor-Fix-crash-when-device_add-is-called-wit.patch [bz#1026712 bz#1046007] -- kvm-block-vhdx-improve-error-message-and-.bdrv_check-imp.patch [bz#1035001] -- kvm-docs-updated-qemu-img-man-page-and-qemu-doc-to-refle.patch [bz#1017650] -- kvm-enable-pvticketlocks-by-default.patch [bz#1052340] -- kvm-fix-boot-strict-regressed-in-commit-6ef4716.patch [bz#997817] -- kvm-vl-make-boot_strict-variable-static-not-used-outside.patch [bz#997817] -- Resolves: bz#1017650 - (need to update qemu-img man pages on "VHDX" format) -- Resolves: bz#1026712 - (Qemu core dumpd when boot guest with driver name as "virtio-pci") -- Resolves: bz#1034876 - (export acpi tables to guests) -- Resolves: bz#1035001 - (VHDX: journal log should not be replayed by default, but rather via qemu-img check -r all) -- Resolves: bz#1039513 - (backport remote wakeup for ehci) -- Resolves: bz#1044845 - (QEMU seccomp sandbox - exit if seccomp_init() fails) -- Resolves: bz#1045386 - (qemu-kvm: hw/i386/acpi-build.c:135: acpi_get_pm_info: Assertion `obj' failed.) -- Resolves: bz#1046007 - (qemu-kvm aborted when hot plug PCI device to guest with romfile and rombar=0) -- Resolves: bz#1052340 - (pvticketlocks: default on) -- Resolves: bz#903910 - (RHEL7 does not have equivalent functionality for __com.redhat_qxl_screendump) -- Resolves: bz#972773 - (RHEL7: Clarify support statement in KVM help) -- Resolves: bz#997817 - (-boot order and -boot once regressed since RHEL-6) -- Resolves: bz#999836 - (-m 1 crashes) - -* Thu Jan 09 2014 Miroslav Rezanina - 1.5.3-35.el7 -- kvm-option-Add-assigned-flag-to-QEMUOptionParameter.patch [bz#1033490] -- kvm-qcow2-refcount-Snapshot-update-for-zero-clusters.patch [bz#1033490] -- kvm-qemu-iotests-Snapshotting-zero-clusters.patch [bz#1033490] -- kvm-block-Image-file-option-amendment.patch [bz#1033490] -- kvm-qcow2-cache-Empty-cache.patch [bz#1033490] -- kvm-qcow2-cluster-Expand-zero-clusters.patch [bz#1033490] -- kvm-qcow2-Save-refcount-order-in-BDRVQcowState.patch [bz#1033490] -- kvm-qcow2-Implement-bdrv_amend_options.patch [bz#1033490] -- kvm-qcow2-Correct-bitmap-size-in-zero-expansion.patch [bz#1033490] -- kvm-qcow2-Free-only-newly-allocated-clusters-on-error.patch [bz#1033490] -- kvm-qcow2-Add-missing-space-in-error-message.patch [bz#1033490] -- kvm-qemu-iotest-qcow2-image-option-amendment.patch [bz#1033490] -- kvm-qemu-iotests-New-test-case-in-061.patch [bz#1033490] -- kvm-qemu-iotests-Preallocated-zero-clusters-in-061.patch [bz#1033490] -- Resolves: bz#1033490 - (Cannot upgrade/downgrade qcow2 images) - -* Wed Jan 08 2014 Miroslav Rezanina - 1.5.3-34.el7 -- kvm-block-stream-Don-t-stream-unbacked-devices.patch [bz#965636] -- kvm-qemu-io-Let-open-pass-options-to-block-driver.patch [bz#1004347] -- kvm-qcow2.py-Subcommand-for-changing-header-fields.patch [bz#1004347] -- kvm-qemu-iotests-Remaining-error-propagation-adjustments.patch [bz#1004347] -- kvm-qemu-iotests-Add-test-for-inactive-L2-overlap.patch [bz#1004347] -- kvm-qemu-iotests-Adjust-test-result-039.patch [bz#1004347] -- kvm-virtio-net-don-t-update-mac_table-in-error-state.patch [bz#1048671] -- kvm-qcow2-Zero-initialise-first-cluster-for-new-images.patch [bz#1032904] -- Resolves: bz#1004347 - (Backport qcow2 corruption prevention patches) -- Resolves: bz#1032904 - (qemu-img can not create libiscsi qcow2_v3 image) -- Resolves: bz#1048671 - (virtio-net: mac_table change isn't recovered in error state) -- Resolves: bz#965636 - (streaming with no backing file should not do anything) - -* Wed Jan 08 2014 Miroslav Rezanina - 1.5.3-33.el7 -- kvm-block-qemu-iotests-for-vhdx-read-sample-dynamic-imag.patch [bz#879234] -- kvm-block-qemu-iotests-add-quotes-to-TEST_IMG-usage-io-p.patch [bz#879234] -- kvm-block-qemu-iotests-fix-_make_test_img-to-work-with-s.patch [bz#879234] -- kvm-block-qemu-iotests-add-quotes-to-TEST_IMG.base-usage.patch [bz#879234] -- kvm-block-qemu-iotests-add-quotes-to-TEST_IMG-usage-in-0.patch [bz#879234] -- kvm-block-qemu-iotests-removes-duplicate-double-quotes-i.patch [bz#879234] -- kvm-block-vhdx-minor-comments-and-typo-correction.patch [bz#879234] -- kvm-block-vhdx-add-header-update-capability.patch [bz#879234] -- kvm-block-vhdx-code-movement-VHDXMetadataEntries-and-BDR.patch [bz#879234] -- kvm-block-vhdx-log-support-struct-and-defines.patch [bz#879234] -- kvm-block-vhdx-break-endian-translation-functions-out.patch [bz#879234] -- kvm-block-vhdx-update-log-guid-in-header-and-first-write.patch [bz#879234] -- kvm-block-vhdx-code-movement-move-vhdx_close-above-vhdx_.patch [bz#879234] -- kvm-block-vhdx-log-parsing-replay-and-flush-support.patch [bz#879234] -- kvm-block-vhdx-add-region-overlap-detection-for-image-fi.patch [bz#879234] -- kvm-block-vhdx-add-log-write-support.patch [bz#879234] -- kvm-block-vhdx-write-support.patch [bz#879234] -- kvm-block-vhdx-remove-BAT-file-offset-bit-shifting.patch [bz#879234] -- kvm-block-vhdx-move-more-endian-translations-to-vhdx-end.patch [bz#879234] -- kvm-block-vhdx-break-out-code-operations-to-functions.patch [bz#879234] -- kvm-block-vhdx-fix-comment-typos-in-header-fix-incorrect.patch [bz#879234] -- kvm-block-vhdx-add-.bdrv_create-support.patch [bz#879234] -- kvm-block-vhdx-update-_make_test_img-to-filter-out-vhdx-.patch [bz#879234] -- kvm-block-qemu-iotests-for-vhdx-add-write-test-support.patch [bz#879234] -- kvm-block-vhdx-qemu-iotest-log-replay-of-data-sector.patch [bz#879234] -- Resolves: bz#879234 - ([RFE] qemu-img: Add/improve support for VHDX format) - -* Mon Jan 06 2014 Michal Novotny - 1.5.3-32.el7 -- kvm-block-change-default-of-.has_zero_init-to-0.patch.patch [bz#1007815] -- kvm-iscsi-factor-out-sector-conversions.patch.patch [bz#1007815] -- kvm-iscsi-add-logical-block-provisioning-information-to-.patch.patch [bz#1007815] -- kvm-iscsi-add-.bdrv_get_block_status.patch.patch.patch [bz#1007815] -- kvm-iscsi-split-discard-requests-in-multiple-parts.patch.patch.patch [bz#1007815] -- kvm-block-make-BdrvRequestFlags-public.patch.patch.patch [bz#1007815] -- kvm-block-add-flags-to-bdrv_-_write_zeroes.patch.patch.patch [bz#1007815] -- kvm-block-introduce-BDRV_REQ_MAY_UNMAP-request-flag.patch.patch.patch [bz#1007815] -- kvm-block-add-logical-block-provisioning-info-to-BlockDr.patch.patch.patch [bz#1007815] -- kvm-block-add-wrappers-for-logical-block-provisioning-in.patch.patch.patch [bz#1007815] -- kvm-block-iscsi-add-.bdrv_get_info.patch.patch [bz#1007815] -- kvm-block-add-BlockLimits-structure-to-BlockDriverState.patch.patch.patch [bz#1007815] -- kvm-block-raw-copy-BlockLimits-on-raw_open.patch.patch.patch [bz#1007815] -- kvm-block-honour-BlockLimits-in-bdrv_co_do_write_zeroes.patch.patch.patch [bz#1007815] -- kvm-block-honour-BlockLimits-in-bdrv_co_discard.patch.patch.patch [bz#1007815] -- kvm-iscsi-set-limits-in-BlockDriverState.patch.patch.patch [bz#1007815] -- kvm-iscsi-simplify-iscsi_co_discard.patch.patch.patch [bz#1007815] -- kvm-iscsi-add-bdrv_co_write_zeroes.patch.patch.patch [bz#1007815] -- kvm-block-introduce-bdrv_make_zero.patch.patch.patch [bz#1007815] -- kvm-block-get_block_status-fix-BDRV_BLOCK_ZERO-for-unall.patch.patch.patch [bz#1007815] -- kvm-qemu-img-add-support-for-fully-allocated-images.patch.patch.patch [bz#1007815] -- kvm-qemu-img-conditionally-zero-out-target-on-convert.patch.patch.patch [bz#1007815] -- kvm-block-generalize-BlockLimits-handling-to-cover-bdrv_.patch.patch.patch [bz#1007815] -- kvm-block-add-flags-to-BlockRequest.patch.patch.patch [bz#1007815] -- kvm-block-add-flags-argument-to-bdrv_co_write_zeroes-tra.patch.patch.patch [bz#1007815] -- kvm-block-add-bdrv_aio_write_zeroes.patch.patch.patch [bz#1007815] -- kvm-block-handle-ENOTSUP-from-discard-in-generic-code.patch.patch.patch [bz#1007815] -- kvm-block-make-bdrv_co_do_write_zeroes-stricter-in-produ.patch.patch.patch [bz#1007815] -- kvm-vpc-vhdx-add-get_info.patch.patch.patch [bz#1007815] -- kvm-block-drivers-add-discard-write_zeroes-properties-to.patch.patch.patch [bz#1007815] -- kvm-block-drivers-expose-requirement-for-write-same-alig.patch.patch.patch [bz#1007815] -- kvm-block-iscsi-remove-.bdrv_has_zero_init.patch.patch.patch [bz#1007815] -- kvm-block-iscsi-updated-copyright.patch.patch.patch [bz#1007815] -- kvm-block-iscsi-check-WRITE-SAME-support-differently-dep.patch.patch.patch [bz#1007815] -- kvm-scsi-disk-catch-write-protection-errors-in-UNMAP.patch.patch.patch [bz#1007815] -- kvm-scsi-disk-reject-ANCHOR-1-for-UNMAP-and-WRITE-SAME-c.patch.patch.patch [bz#1007815] -- kvm-scsi-disk-correctly-implement-WRITE-SAME.patch.patch.patch [bz#1007815] -- kvm-scsi-disk-fix-WRITE-SAME-with-large-non-zero-payload.patch.patch.patch [bz#1007815] -- kvm-raw-posix-implement-write_zeroes-with-MAY_UNMAP-for-.patch.patch.patch.patch [bz#1007815] -- kvm-raw-posix-implement-write_zeroes-with-MAY_UNMAP-for-.patch.patch.patch.patch.patch [bz#1007815] -- kvm-raw-posix-add-support-for-write_zeroes-on-XFS-and-bl.patch.patch [bz#1007815] -- kvm-qemu-iotests-033-is-fast.patch.patch [bz#1007815] -- kvm-qemu-img-add-support-for-skipping-zeroes-in-input-du.patch.patch [bz#1007815] -- kvm-qemu-img-fix-usage-instruction-for-qemu-img-convert.patch.patch [bz#1007815] -- kvm-block-iscsi-set-bdi-cluster_size.patch.patch [bz#1007815] -- kvm-block-add-opt_transfer_length-to-BlockLimits.patch.patch [bz#1039557] -- kvm-block-iscsi-set-bs-bl.opt_transfer_length.patch.patch [bz#1039557] -- kvm-qemu-img-dynamically-adjust-iobuffer-size-during-con.patch.patch [bz#1039557] -- kvm-qemu-img-round-down-request-length-to-an-aligned-sec.patch.patch [bz#1039557] -- kvm-qemu-img-decrease-progress-update-interval-on-conver.patch.patch [bz#1039557] -- Resolves: bz#1007815 - (fix WRITE SAME support) -- Resolves: bz#1039557 - (optimize qemu-img for thin provisioned images) - -* Fri Dec 27 2013 Daniel Mach - 10:1.5.3-31 -- Mass rebuild 2013-12-27 - -* Wed Dec 18 2013 Michal Novotny - 1.5.3-30.el7 -- kvm-Revert-HMP-Disable-drive_add-for-Red-Hat-Enterprise-2.patch.patch [bz#889051] -- Resolves: bz#889051 - (Commands "__com.redhat_drive_add/del" don' t exist in RHEL7.0) - -* Wed Dec 18 2013 Michal Novotny - 1.5.3-29.el7 -- kvm-QMP-Forward-port-__com.redhat_drive_del-from-RHEL-6.patch [bz#889051] -- kvm-QMP-Forward-port-__com.redhat_drive_add-from-RHEL-6.patch [bz#889051] -- kvm-HMP-Forward-port-__com.redhat_drive_add-from-RHEL-6.patch [bz#889051] -- kvm-QMP-Document-throttling-parameters-of-__com.redhat_d.patch [bz#889051] -- kvm-HMP-Disable-drive_add-for-Red-Hat-Enterprise-Linux.patch [bz#889051] -- Resolves: bz#889051 - (Commands "__com.redhat_drive_add/del" don' t exist in RHEL7.0) - -* Wed Dec 18 2013 Michal Novotny - 1.5.3-28.el7 -- kvm-virtio_pci-fix-level-interrupts-with-irqfd.patch [bz#1035132] -- Resolves: bz#1035132 - (fail to boot and call trace with x-data-plane=on specified for rhel6.5 guest) - -* Wed Dec 18 2013 Michal Novotny - 1.5.3-27.el7 -- Change systemd service location [bz#1025217] -- kvm-vmdk-Allow-read-only-open-of-VMDK-version-3.patch [bz#1007710 bz#1029852] -- Resolves: bz#1007710 - ([RFE] Enable qemu-img to support VMDK version 3) -- Resolves: bz#1025217 - (systemd can't control ksm.service and ksmtuned.service) -- Resolves: bz#1029852 - (qemu-img fails to convert vmdk image with "qemu-img: Could not open 'image.vmdk'") - -* Wed Dec 18 2013 Michal Novotny - 1.5.3-26.el7 -- Add BuildRequires to libRDMAcm-devel for RDMA support [bz#1011720] -- kvm-add-a-header-file-for-atomic-operations.patch [bz#1011720] -- kvm-savevm-Fix-potential-memory-leak.patch [bz#1011720] -- kvm-migration-Fail-migration-on-bdrv_flush_all-error.patch [bz#1011720] -- kvm-rdma-add-documentation.patch [bz#1011720] -- kvm-rdma-introduce-qemu_update_position.patch [bz#1011720] -- kvm-rdma-export-yield_until_fd_readable.patch [bz#1011720] -- kvm-rdma-export-throughput-w-MigrationStats-QMP.patch [bz#1011720] -- kvm-rdma-introduce-qemu_file_mode_is_not_valid.patch [bz#1011720] -- kvm-rdma-introduce-qemu_ram_foreach_block.patch [bz#1011720] -- kvm-rdma-new-QEMUFileOps-hooks.patch [bz#1011720] -- kvm-rdma-introduce-capability-x-rdma-pin-all.patch [bz#1011720] -- kvm-rdma-update-documentation-to-reflect-new-unpin-suppo.patch [bz#1011720]- kvm-rdma-bugfix-ram_control_save_page.patch [bz#1011720] -- kvm-rdma-introduce-ram_handle_compressed.patch [bz#1011720] -- kvm-rdma-core-logic.patch [bz#1011720] -- kvm-rdma-send-pc.ram.patch [bz#1011720] -- kvm-rdma-allow-state-transitions-between-other-states-be.patch [bz#1011720] -- kvm-rdma-introduce-MIG_STATE_NONE-and-change-MIG_STATE_S.patch [bz#1011720] -- kvm-rdma-account-for-the-time-spent-in-MIG_STATE_SETUP-t.patch [bz#1011720] -- kvm-rdma-bugfix-make-IPv6-support-work.patch [bz#1011720] -- kvm-rdma-forgot-to-turn-off-the-debugging-flag.patch [bz#1011720] -- kvm-rdma-correct-newlines-in-error-statements.patch [bz#1011720] -- kvm-rdma-don-t-use-negative-index-to-array.patch [bz#1011720] -- kvm-rdma-qemu_rdma_post_send_control-uses-wrongly-RDMA_W.patch [bz#1011720] -- kvm-rdma-use-DRMA_WRID_READY.patch [bz#1011720] -- kvm-rdma-memory-leak-RDMAContext-host.patch [bz#1011720] -- kvm-rdma-use-resp.len-after-validation-in-qemu_rdma_regi.patch [bz#1011720] -- kvm-rdma-validate-RDMAControlHeader-len.patch [bz#1011720] -- kvm-rdma-check-if-RDMAControlHeader-len-match-transferre.patch [bz#1011720] -- kvm-rdma-proper-getaddrinfo-handling.patch [bz#1011720] -- kvm-rdma-IPv6-over-Ethernet-RoCE-is-broken-in-linux-work.patch [bz#1011720] -- kvm-rdma-remaining-documentation-fixes.patch [bz#1011720] -- kvm-rdma-silly-ipv6-bugfix.patch [bz#1011720] -- kvm-savevm-fix-wrong-initialization-by-ram_control_load_.patch [bz#1011720] -- kvm-arch_init-right-return-for-ram_save_iterate.patch [bz#1011720] -- kvm-rdma-clean-up-of-qemu_rdma_cleanup.patch [bz#1011720] -- kvm-rdma-constify-ram_chunk_-index-start-end.patch [bz#1011720] -- kvm-migration-Fix-debug-print-type.patch [bz#1011720] -- kvm-arch_init-make-is_zero_page-accept-size.patch [bz#1011720] -- kvm-migration-ram_handle_compressed.patch [bz#1011720] -- kvm-migration-fix-spice-migration.patch [bz#1011720] -- kvm-pci-assign-cap-number-of-devices-that-can-be-assigne.patch [bz#678368] -- kvm-vfio-cap-number-of-devices-that-can-be-assigned.patch [bz#678368] -- kvm-Revert-usb-tablet-Don-t-claim-wakeup-capability-for-.patch [bz#1039513] -- kvm-mempath-prefault-pages-manually-v4.patch [bz#1026554] -- Resolves: bz#1011720 - ([HP 7.0 Feat]: Backport RDMA based live guest migration changes from upstream to RHEL7.0 KVM) -- Resolves: bz#1026554 - (qemu: mempath: prefault pages manually) -- Resolves: bz#1039513 - (backport remote wakeup for ehci) -- Resolves: bz#678368 - (RFE: Support more than 8 assigned devices) - -* Wed Dec 18 2013 Michal Novotny - 1.5.3-25.el7 -- kvm-Change-package-description.patch [bz#1017696] -- kvm-seccomp-add-kill-to-the-syscall-whitelist.patch [bz#1026314] -- kvm-json-parser-fix-handling-of-large-whole-number-value.patch [bz#997915] -- kvm-qapi-add-QMP-input-test-for-large-integers.patch [bz#997915] -- kvm-qapi-fix-visitor-serialization-tests-for-numbers-dou.patch [bz#997915] -- kvm-qapi-add-native-list-coverage-for-visitor-serializat.patch [bz#997915] -- kvm-qapi-add-native-list-coverage-for-QMP-output-visitor.patch [bz#997915] -- kvm-qapi-add-native-list-coverage-for-QMP-input-visitor-.patch [bz#997915] -- kvm-qapi-lack-of-two-commas-in-dict.patch [bz#997915] -- kvm-tests-QAPI-schema-parser-tests.patch [bz#997915] -- kvm-tests-Use-qapi-schema-test.json-as-schema-parser-tes.patch [bz#997915] -- kvm-qapi.py-Restructure-lexer-and-parser.patch [bz#997915] -- kvm-qapi.py-Decent-syntax-error-reporting.patch [bz#997915] -- kvm-qapi.py-Reject-invalid-characters-in-schema-file.patch [bz#997915] -- kvm-qapi.py-Fix-schema-parser-to-check-syntax-systematic.patch [bz#997915] -- kvm-qapi.py-Fix-diagnosing-non-objects-at-a-schema-s-top.patch [bz#997915] -- kvm-qapi.py-Rename-expr_eval-to-expr-in-parse_schema.patch [bz#997915] -- kvm-qapi.py-Permit-comments-starting-anywhere-on-the-lin.patch [bz#997915] -- kvm-scripts-qapi.py-Avoid-syntax-not-supported-by-Python.patch [bz#997915] -- kvm-tests-Fix-schema-parser-test-for-in-tree-build.patch [bz#997915] -- Resolves: bz#1017696 - ([branding] remove references to dynamic translation and user-mode emulation) -- Resolves: bz#1026314 - (qemu-kvm hang when use '-sandbox on'+'vnc'+'hda') -- Resolves: bz#997915 - (Backport new QAPI parser proactively to help developers and avoid silly conflicts) - -* Tue Dec 17 2013 Michal Novotny - 1.5.3-24.el7 -- kvm-range-add-Range-structure.patch [bz#1034876] -- kvm-range-add-Range-to-typedefs.patch [bz#1034876] -- kvm-range-add-min-max-operations-on-ranges.patch [bz#1034876] -- kvm-qdev-Add-SIZE-type-to-qdev-properties.patch [bz#1034876] -- kvm-qapi-make-visit_type_size-fallback-to-type_int.patch [bz#1034876] -- kvm-pc-move-IO_APIC_DEFAULT_ADDRESS-to-include-hw-i386-i.patch [bz#1034876] -- kvm-pci-add-helper-to-retrieve-the-64-bit-range.patch [bz#1034876] -- kvm-pci-fix-up-w64-size-calculation-helper.patch [bz#1034876] -- kvm-refer-to-FWCfgState-explicitly.patch [bz#1034876] -- kvm-fw_cfg-move-typedef-to-qemu-typedefs.h.patch [bz#1034876] -- kvm-arch_init-align-MR-size-to-target-page-size.patch [bz#1034876] -- kvm-loader-store-FW-CFG-ROM-files-in-RAM.patch [bz#1034876] -- kvm-pci-store-PCI-hole-ranges-in-guestinfo-structure.patch [bz#1034876] -- kvm-pc-pass-PCI-hole-ranges-to-Guests.patch [bz#1034876] -- kvm-pc-replace-i440fx_common_init-with-i440fx_init.patch [bz#1034876] -- kvm-pc-don-t-access-fw-cfg-if-NULL.patch [bz#1034876] -- kvm-pc-add-I440FX-QOM-cast-macro.patch [bz#1034876] -- kvm-pc-limit-64-bit-hole-to-2G-by-default.patch [bz#1034876] -- kvm-q35-make-pci-window-address-size-match-guest-cfg.patch [bz#1034876] -- kvm-q35-use-64-bit-window-programmed-by-guest.patch [bz#1034876] -- kvm-piix-use-64-bit-window-programmed-by-guest.patch [bz#1034876] -- kvm-pc-fix-regression-for-64-bit-PCI-memory.patch [bz#1034876] -- kvm-cleanup-object.h-include-error.h-directly.patch [bz#1034876] -- kvm-qom-cleanup-struct-Error-references.patch [bz#1034876] -- kvm-qom-add-pointer-to-int-property-helpers.patch [bz#1034876] -- kvm-fw_cfg-interface-to-trigger-callback-on-read.patch [bz#1034876] -- kvm-loader-support-for-unmapped-ROM-blobs.patch [bz#1034876] -- kvm-pcie_host-expose-UNMAPPED-macro.patch [bz#1034876] -- kvm-pcie_host-expose-address-format.patch [bz#1034876] -- kvm-q35-use-macro-for-MCFG-property-name.patch [bz#1034876] -- kvm-q35-expose-mmcfg-size-as-a-property.patch [bz#1034876] -- kvm-i386-add-ACPI-table-files-from-seabios.patch [bz#1034876] -- kvm-acpi-add-rules-to-compile-ASL-source.patch [bz#1034876] -- kvm-acpi-pre-compiled-ASL-files.patch [bz#1034876] -- kvm-acpi-ssdt-pcihp-updat-generated-file.patch [bz#1034876] -- kvm-loader-use-file-path-size-from-fw_cfg.h.patch [bz#1034876] -- kvm-i386-add-bios-linker-loader.patch [bz#1034876] -- kvm-loader-allow-adding-ROMs-in-done-callbacks.patch [bz#1034876] -- kvm-i386-define-pc-guest-info.patch [bz#1034876] -- kvm-acpi-piix-add-macros-for-acpi-property-names.patch [bz#1034876] -- kvm-piix-APIs-for-pc-guest-info.patch [bz#1034876] -- kvm-ich9-APIs-for-pc-guest-info.patch [bz#1034876] -- kvm-pvpanic-add-API-to-access-io-port.patch [bz#1034876] -- kvm-hpet-add-API-to-find-it.patch [bz#1034876] -- kvm-hpet-fix-build-with-CONFIG_HPET-off.patch [bz#1034876] -- kvm-acpi-add-interface-to-access-user-installed-tables.patch [bz#1034876] -- kvm-pc-use-new-api-to-add-builtin-tables.patch [bz#1034876] -- kvm-i386-ACPI-table-generation-code-from-seabios.patch [bz#1034876] -- kvm-ssdt-fix-PBLK-length.patch [bz#1034876] -- kvm-ssdt-proc-update-generated-file.patch [bz#1034876] -- kvm-pc-disable-pci-info.patch [bz#1034876] -- kvm-acpi-build-fix-build-on-glib-2.22.patch [bz#1034876] -- kvm-acpi-build-fix-build-on-glib-2.14.patch [bz#1034876] -- kvm-acpi-build-fix-support-for-glib-2.22.patch [bz#1034876] -- kvm-acpi-build-Fix-compiler-warning-missing-gnu_printf-f.patch [bz#1034876] -- kvm-exec-Fix-prototype-of-phys_mem_set_alloc-and-related.patch [bz#1034876] -- Resolves: bz#1034876 - (export acpi tables to guests) - -* Tue Dec 17 2013 Michal Novotny - 1.5.3-23.el7 -- kvm-qdev-monitor-Unref-device-when-device_add-fails.patch [bz#1003773] -- kvm-qdev-Drop-misleading-qdev_free-function.patch [bz#1003773] -- kvm-blockdev-fix-drive_init-opts-and-bs_opts-leaks.patch [bz#1003773] -- kvm-libqtest-rename-qmp-to-qmp_discard_response.patch [bz#1003773] -- kvm-libqtest-add-qmp-fmt-.-QDict-function.patch [bz#1003773] -- kvm-blockdev-test-add-test-case-for-drive_add-duplicate-.patch [bz#1003773] -- kvm-qdev-monitor-test-add-device_add-leak-test-cases.patch [bz#1003773] -- kvm-qtest-Use-display-none-by-default.patch [bz#1003773] -- Resolves: bz#1003773 - (When virtio-blk-pci device with dataplane is failed to be added, the drive cannot be released.) - -* Tue Dec 17 2013 Michal Novotny - 1.5.3-22.el7 -- Fix ksmtuned with set_process_name=1 [bz#1027420] -- Fix committed memory when no qemu-kvm running [bz#1027418] -- kvm-virtio-net-fix-the-memory-leak-in-rxfilter_notify.patch [bz#1033810] -- kvm-qom-Fix-memory-leak-in-object_property_set_link.patch [bz#1033810] -- kvm-fix-intel-hda-live-migration.patch [bz#1036537] -- kvm-vfio-pci-Release-all-MSI-X-vectors-when-disabled.patch [bz#1029743] -- kvm-Query-KVM-for-available-memory-slots.patch [bz#921490] -- kvm-block-Dont-ignore-previously-set-bdrv_flags.patch [bz#1039501] -- kvm-cleanup-trace-events.pl-New.patch [bz#997832] -- kvm-slavio_misc-Fix-slavio_led_mem_readw-_writew-tracepo.patch [bz#997832] -- kvm-milkymist-minimac2-Fix-minimac2_read-_write-tracepoi.patch [bz#997832] -- kvm-trace-events-Drop-unused-events.patch [bz#997832] -- kvm-trace-events-Fix-up-source-file-comments.patch [bz#997832] -- kvm-trace-events-Clean-up-with-scripts-cleanup-trace-eve.patch [bz#997832] -- kvm-trace-events-Clean-up-after-removal-of-old-usb-host-.patch [bz#997832] -- kvm-net-Update-netdev-peer-on-link-change.patch [bz#1027571] -- Resolves: bz#1027418 - (ksmtuned committed_memory() still returns "", not 0, when no qemu running) -- Resolves: bz#1027420 - (ksmtuned can’t handle libvirt WITH set_process_name=1) -- Resolves: bz#1027571 - ([virtio-win]win8.1 guest network can not resume automatically after do "set_link tap1 on") -- Resolves: bz#1029743 - (qemu-kvm core dump after hot plug/unplug 82576 PF about 100 times) -- Resolves: bz#1033810 - (memory leak in using object_get_canonical_path()) -- Resolves: bz#1036537 - (Cross version migration from RHEL6.5 host to RHEL7.0 host with sound device failed.) -- Resolves: bz#1039501 - ([provisioning] discard=on broken) -- Resolves: bz#921490 - (qemu-kvm core dumped after hot plugging more than 11 VF through vfio-pci) -- Resolves: bz#997832 - (Backport trace fixes proactively to avoid confusion and silly conflicts) - -* Tue Dec 03 2013 Miroslav Rezanina - 1.5.3-21.el7 -- kvm-scsi-Allocate-SCSITargetReq-r-buf-dynamically-CVE-20.patch [bz#1007334] -- Resolves: bz#1007334 - (CVE-2013-4344 qemu-kvm: qemu: buffer overflow in scsi_target_emulate_report_luns [rhel-7.0]) - -* Thu Nov 28 2013 Miroslav Rezanina - 1.5.3-20.el7 -- kvm-pc-drop-virtio-balloon-pci-event_idx-compat-property.patch [bz#1029539] -- kvm-virtio-net-only-delete-bh-that-existed.patch [bz#922463] -- kvm-virtio-net-broken-RX-filtering-logic-fixed.patch [bz#1029370] -- kvm-block-Avoid-unecessary-drv-bdrv_getlength-calls.patch [bz#1025138] -- kvm-block-Round-up-total_sectors.patch [bz#1025138] -- kvm-doc-fix-hardcoded-helper-path.patch [bz#1016952] -- kvm-introduce-RFQDN_REDHAT-RHEL-6-7-fwd.patch [bz#971933] -- kvm-error-reason-in-BLOCK_IO_ERROR-BLOCK_JOB_ERROR-event.patch [bz#971938] -- kvm-improve-debuggability-of-BLOCK_IO_ERROR-BLOCK_JOB_ER.patch [bz#895041] -- kvm-vfio-pci-Fix-multifunction-on.patch [bz#1029275] -- kvm-qcow2-Change-default-for-new-images-to-compat-1.1.patch [bz#1026739] -- kvm-qcow2-change-default-for-new-images-to-compat-1.1-pa.patch [bz#1026739] -- kvm-rng-egd-offset-the-point-when-repeatedly-read-from-t.patch [bz#1032862] -- kvm-Fix-rhel-rhev-conflict-for-qemu-kvm-common.patch [bz#1033463] -- Resolves: bz#1016952 - (qemu-kvm man page guide wrong path for qemu-bridge-helper) -- Resolves: bz#1025138 - (Read/Randread/Randrw performance regression) -- Resolves: bz#1026739 - (qcow2: Switch to compat=1.1 default for new images) -- Resolves: bz#1029275 - (Guest only find one 82576 VF(function 0) while use multifunction) -- Resolves: bz#1029370 - ([whql][netkvm][wlk] Virtio-net device handles RX multicast filtering improperly) -- Resolves: bz#1029539 - (Machine type rhel6.1.0 and balloon device cause migration fail from RHEL6.5 host to RHEL7.0 host) -- Resolves: bz#1032862 - (virtio-rng-egd: repeatedly read same random data-block w/o considering the buffer offset) -- Resolves: bz#1033463 - (can not upgrade qemu-kvm-common to qemu-kvm-common-rhev due to conflicts) -- Resolves: bz#895041 - (QMP: forward port I/O error debug messages) -- Resolves: bz#922463 - (qemu-kvm core dump when virtio-net multi queue guest hot-unpluging vNIC) -- Resolves: bz#971933 - (QMP: add RHEL's vendor extension prefix) -- Resolves: bz#971938 - (QMP: Add error reason to BLOCK_IO_ERROR event) - -* Mon Nov 11 2013 Miroslav Rezanina - 1.5.3-19.el7 -- kvm-qapi-qapi-visit.py-fix-list-handling-for-union-types.patch [bz#848203] -- kvm-qapi-qapi-visit.py-native-list-support.patch [bz#848203] -- kvm-qapi-enable-generation-of-native-list-code.patch [bz#848203] -- kvm-net-add-support-of-mac-programming-over-macvtap-in-Q.patch [bz#848203] -- Resolves: bz#848203 - (MAC Programming for virtio over macvtap - qemu-kvm support) - -* Fri Nov 08 2013 Michal Novotny - 1.5.3-18.el7 -- Removing leaked patch kvm-e1000-rtl8139-update-HMP-NIC-when-every-bit-is-writt.patch - -* Thu Nov 07 2013 Miroslav Rezanina - 1.5.3-17.el7 -- kvm-pci-assign-Add-MSI-affinity-support.patch [bz#1025877] -- kvm-Fix-potential-resource-leak-missing-fclose.patch [bz#1025877] -- kvm-pci-assign-remove-the-duplicate-function-name-in-deb.patch [bz#1025877] -- kvm-Remove-s390-ccw-img-loader.patch [bz#1017682] -- kvm-Fix-vscclient-installation.patch [bz#1017681] -- kvm-Change-qemu-bridge-helper-permissions-to-4755.patch [bz#1017689] -- kvm-net-update-nic-info-during-device-reset.patch [bz#922589] -- kvm-net-e1000-update-network-information-when-macaddr-is.patch [bz#922589] -- kvm-net-rtl8139-update-network-information-when-macaddr-.patch [bz#922589] -- kvm-virtio-net-fix-up-HMP-NIC-info-string-on-reset.patch [bz#1026689] -- kvm-vfio-pci-VGA-quirk-update.patch [bz#1025477] -- kvm-vfio-pci-Add-support-for-MSI-affinity.patch [bz#1025477] -- kvm-vfio-pci-Test-device-reset-capabilities.patch [bz#1026550] -- kvm-vfio-pci-Lazy-PCI-option-ROM-loading.patch [bz#1026550] -- kvm-vfio-pci-Cleanup-error_reports.patch [bz#1026550] -- kvm-vfio-pci-Add-dummy-PCI-ROM-write-accessor.patch [bz#1026550] -- kvm-vfio-pci-Fix-endian-issues-in-vfio_pci_size_rom.patch [bz#1026550] -- kvm-linux-headers-Update-to-include-vfio-pci-hot-reset-s.patch [bz#1025472] -- kvm-vfio-pci-Implement-PCI-hot-reset.patch [bz#1025472] -- kvm-linux-headers-Update-for-KVM-VFIO-device.patch [bz#1025474] -- kvm-vfio-pci-Make-use-of-new-KVM-VFIO-device.patch [bz#1025474] -- kvm-vmdk-Fix-vmdk_parse_extents.patch [bz#995866] -- kvm-vmdk-fix-VMFS-extent-parsing.patch [bz#995866] -- kvm-e1000-rtl8139-update-HMP-NIC-when-every-bit-is-writt.patch [bz#922589] -- kvm-don-t-disable-ctrl_mac_addr-feature-for-6.5-machine-.patch [bz#1005039] -- Resolves: bz#1005039 - (add compat property to disable ctrl_mac_addr feature) -- Resolves: bz#1017681 - (rpmdiff test "Multilib regressions": vscclient is a libtool script on s390/s390x/ppc/ppc64) -- Resolves: bz#1017682 - (/usr/share/qemu-kvm/s390-ccw.img need not be distributed) -- Resolves: bz#1017689 - (/usr/libexec/qemu-bridge-helper permissions should be 4755) -- Resolves: bz#1025472 - (Nvidia GPU device assignment - qemu-kvm - bus reset support) -- Resolves: bz#1025474 - (Nvidia GPU device assignment - qemu-kvm - NoSnoop support) -- Resolves: bz#1025477 - (VFIO MSI affinity) -- Resolves: bz#1025877 - (pci-assign lacks MSI affinity support) -- Resolves: bz#1026550 - (QEMU VFIO update ROM loading code) -- Resolves: bz#1026689 - (virtio-net: macaddr is reset but network info of monitor isn't updated) -- Resolves: bz#922589 - (e1000/rtl8139: qemu mac address can not be changed via set the hardware address in guest) -- Resolves: bz#995866 - (fix vmdk support to ESX images) - -* Thu Nov 07 2013 Miroslav Rezanina - 1.5.3-16.el7 -- kvm-block-drop-bs_snapshots-global-variable.patch [bz#1026524] -- kvm-block-move-snapshot-code-in-block.c-to-block-snapsho.patch [bz#1026524] -- kvm-block-fix-vvfat-error-path-for-enable_write_target.patch [bz#1026524] -- kvm-block-Bugfix-format-and-snapshot-used-in-drive-optio.patch [bz#1026524] -- kvm-iscsi-use-bdrv_new-instead-of-stack-structure.patch [bz#1026524] -- kvm-qcow2-Add-corrupt-bit.patch [bz#1004347] -- kvm-qcow2-Metadata-overlap-checks.patch [bz#1004347] -- kvm-qcow2-Employ-metadata-overlap-checks.patch [bz#1004347] -- kvm-qcow2-refcount-Move-OFLAG_COPIED-checks.patch [bz#1004347] -- kvm-qcow2-refcount-Repair-OFLAG_COPIED-errors.patch [bz#1004347] -- kvm-qcow2-refcount-Repair-shared-refcount-blocks.patch [bz#1004347] -- kvm-qcow2_check-Mark-image-consistent.patch [bz#1004347] -- kvm-qemu-iotests-Overlapping-cluster-allocations.patch [bz#1004347] -- kvm-w32-Fix-access-to-host-devices-regression.patch [bz#1026524] -- kvm-add-qemu-img-convert-n-option-skip-target-volume-cre.patch [bz#1026524] -- kvm-bdrv-Use-Error-for-opening-images.patch [bz#1026524] -- kvm-bdrv-Use-Error-for-creating-images.patch [bz#1026524] -- kvm-block-Error-parameter-for-open-functions.patch [bz#1026524] -- kvm-block-Error-parameter-for-create-functions.patch [bz#1026524] -- kvm-qemu-img-create-Emit-filename-on-error.patch [bz#1026524] -- kvm-qcow2-Use-Error-parameter.patch [bz#1026524] -- kvm-qemu-iotests-Adjustments-due-to-error-propagation.patch [bz#1026524] -- kvm-block-raw-Employ-error-parameter.patch [bz#1026524] -- kvm-block-raw-win32-Employ-error-parameter.patch [bz#1026524] -- kvm-blkdebug-Employ-error-parameter.patch [bz#1026524] -- kvm-blkverify-Employ-error-parameter.patch [bz#1026524] -- kvm-block-raw-posix-Employ-error-parameter.patch [bz#1026524] -- kvm-block-raw-win32-Always-use-errno-in-hdev_open.patch [bz#1026524] -- kvm-qmp-Documentation-for-BLOCK_IMAGE_CORRUPTED.patch [bz#1004347] -- kvm-qcow2-Correct-snapshots-size-for-overlap-check.patch [bz#1004347] -- kvm-qcow2-CHECK_OFLAG_COPIED-is-obsolete.patch [bz#1004347] -- kvm-qcow2-Correct-endianness-in-overlap-check.patch [bz#1004347] -- kvm-qcow2-Switch-L1-table-in-a-single-sequence.patch [bz#1004347] -- kvm-qcow2-Use-pread-for-inactive-L1-in-overlap-check.patch [bz#1004347] -- kvm-qcow2-Remove-wrong-metadata-overlap-check.patch [bz#1004347] -- kvm-qcow2-Use-negated-overflow-check-mask.patch [bz#1004347] -- kvm-qcow2-Make-overlap-check-mask-variable.patch [bz#1004347] -- kvm-qcow2-Add-overlap-check-options.patch [bz#1004347] -- kvm-qcow2-Array-assigning-options-to-OL-check-bits.patch [bz#1004347] -- kvm-qcow2-Add-more-overlap-check-bitmask-macros.patch [bz#1004347] -- kvm-qcow2-Evaluate-overlap-check-options.patch [bz#1004347] -- kvm-qapi-types.py-Split-off-generate_struct_fields.patch [bz#978402] -- kvm-qapi-types.py-Fix-enum-struct-sizes-on-i686.patch [bz#978402] -- kvm-qapi-types-visit.py-Pass-whole-expr-dict-for-structs.patch [bz#978402] -- kvm-qapi-types-visit.py-Inheritance-for-structs.patch [bz#978402] -- kvm-blockdev-Introduce-DriveInfo.enable_auto_del.patch [bz#978402] -- kvm-Implement-qdict_flatten.patch [bz#978402] -- kvm-blockdev-blockdev-add-QMP-command.patch [bz#978402] -- kvm-blockdev-Separate-ID-generation-from-DriveInfo-creat.patch [bz#978402] -- kvm-blockdev-Pass-QDict-to-blockdev_init.patch [bz#978402] -- kvm-blockdev-Move-parsing-of-media-option-to-drive_init.patch [bz#978402] -- kvm-blockdev-Move-parsing-of-if-option-to-drive_init.patch [bz#978402] -- kvm-blockdev-Moving-parsing-of-geometry-options-to-drive.patch [bz#978402] -- kvm-blockdev-Move-parsing-of-boot-option-to-drive_init.patch [bz#978402] -- kvm-blockdev-Move-bus-unit-index-processing-to-drive_ini.patch [bz#978402] -- kvm-blockdev-Move-virtio-blk-device-creation-to-drive_in.patch [bz#978402] -- kvm-blockdev-Remove-IF_-check-for-read-only-blockdev_ini.patch [bz#978402] -- kvm-qemu-iotests-Check-autodel-behaviour-for-device_del.patch [bz#978402] -- kvm-blockdev-Remove-media-parameter-from-blockdev_init.patch [bz#978402] -- kvm-blockdev-Don-t-disable-COR-automatically-with-blockd.patch [bz#978402] -- kvm-blockdev-blockdev_init-error-conversion.patch [bz#978402] -- kvm-sd-Avoid-access-to-NULL-BlockDriverState.patch [bz#978402] -- kvm-blockdev-fix-cdrom-read_only-flag.patch [bz#978402] -- kvm-block-fix-backing-file-overriding.patch [bz#978402] -- kvm-block-Disable-BDRV_O_COPY_ON_READ-for-the-backing-fi.patch [bz#978402] -- kvm-block-Don-t-copy-backing-file-name-on-error.patch [bz#978402] -- kvm-qemu-iotests-Try-creating-huge-qcow2-image.patch [bz#980771] -- kvm-block-move-qmp-and-info-dump-related-code-to-block-q.patch [bz#980771] -- kvm-block-dump-snapshot-and-image-info-to-specified-outp.patch [bz#980771] -- kvm-block-add-snapshot-info-query-function-bdrv_query_sn.patch [bz#980771] -- kvm-block-add-image-info-query-function-bdrv_query_image.patch [bz#980771] -- kvm-qmp-add-ImageInfo-in-BlockDeviceInfo-used-by-query-b.patch [bz#980771] -- kvm-vmdk-Implement-.bdrv_has_zero_init.patch [bz#980771] -- kvm-qemu-iotests-Add-basic-ability-to-use-binary-sample-.patch [bz#980771] -- kvm-qemu-iotests-Quote-TEST_IMG-and-TEST_DIR-usage.patch [bz#980771] -- kvm-qemu-iotests-fix-test-case-059.patch [bz#980771] -- kvm-qapi-Add-ImageInfoSpecific-type.patch [bz#980771] -- kvm-block-Add-bdrv_get_specific_info.patch [bz#980771] -- kvm-block-qapi-Human-readable-ImageInfoSpecific-dump.patch [bz#980771] -- kvm-qcow2-Add-support-for-ImageInfoSpecific.patch [bz#980771] -- kvm-qemu-iotests-Discard-specific-info-in-_img_info.patch [bz#980771] -- kvm-qemu-iotests-Additional-info-from-qemu-img-info.patch [bz#980771] -- kvm-vmdk-convert-error-code-to-use-errp.patch [bz#980771] -- kvm-vmdk-refuse-enabling-zeroed-grain-with-flat-images.patch [bz#980771] -- kvm-qapi-Add-optional-field-compressed-to-ImageInfo.patch [bz#980771] -- kvm-vmdk-Only-read-cid-from-image-file-when-opening.patch [bz#980771] -- kvm-vmdk-Implment-bdrv_get_specific_info.patch [bz#980771] -- Resolves: bz#1004347 - (Backport qcow2 corruption prevention patches) -- Resolves: bz#1026524 - (Backport block layer error parameter patches) -- Resolves: bz#978402 - ([RFE] Add discard support to qemu-kvm layer) -- Resolves: bz#980771 - ([RFE] qemu-img should be able to tell the compat version of a qcow2 image) - -* Thu Nov 07 2013 Miroslav Rezanina - 1.5.3-15.el7 -- kvm-cow-make-reads-go-at-a-decent-speed.patch [bz#989646] -- kvm-cow-make-writes-go-at-a-less-indecent-speed.patch [bz#989646] -- kvm-cow-do-not-call-bdrv_co_is_allocated.patch [bz#989646] -- kvm-block-keep-bs-total_sectors-up-to-date-even-for-grow.patch [bz#989646] -- kvm-block-make-bdrv_co_is_allocated-static.patch [bz#989646] -- kvm-block-do-not-use-total_sectors-in-bdrv_co_is_allocat.patch [bz#989646] -- kvm-block-remove-bdrv_is_allocated_above-bdrv_co_is_allo.patch [bz#989646] -- kvm-block-expect-errors-from-bdrv_co_is_allocated.patch [bz#989646] -- kvm-block-Fix-compiler-warning-Werror-uninitialized.patch [bz#989646] -- kvm-qemu-img-always-probe-the-input-image-for-allocated-.patch [bz#989646] -- kvm-block-make-bdrv_has_zero_init-return-false-for-copy-.patch [bz#989646] -- kvm-block-introduce-bdrv_get_block_status-API.patch [bz#989646] -- kvm-block-define-get_block_status-return-value.patch [bz#989646] -- kvm-block-return-get_block_status-data-and-flags-for-for.patch [bz#989646] -- kvm-block-use-bdrv_has_zero_init-to-return-BDRV_BLOCK_ZE.patch [bz#989646] -- kvm-block-return-BDRV_BLOCK_ZERO-past-end-of-backing-fil.patch [bz#989646] -- kvm-qemu-img-add-a-map-subcommand.patch [bz#989646] -- kvm-docs-qapi-document-qemu-img-map.patch [bz#989646] -- kvm-raw-posix-return-get_block_status-data-and-flags.patch [bz#989646] -- kvm-raw-posix-report-unwritten-extents-as-zero.patch [bz#989646] -- kvm-block-add-default-get_block_status-implementation-fo.patch [bz#989646] -- kvm-block-look-for-zero-blocks-in-bs-file.patch [bz#989646] -- kvm-qemu-img-fix-invalid-JSON.patch [bz#989646] -- kvm-block-get_block_status-set-pnum-0-on-error.patch [bz#989646] -- kvm-block-get_block_status-avoid-segfault-if-there-is-no.patch [bz#989646] -- kvm-block-get_block_status-avoid-redundant-callouts-on-r.patch [bz#989646] -- kvm-qcow2-Restore-total_sectors-value-in-save_vmstate.patch [bz#1025740] -- kvm-qcow2-Unset-zero_beyond_eof-in-save_vmstate.patch [bz#1025740] -- kvm-qemu-iotests-Test-for-loading-VM-state-from-qcow2.patch [bz#1025740] -- kvm-apic-rename-apic-specific-bitopts.patch [bz#1001216] -- kvm-hw-import-bitmap-operations-in-qdev-core-header.patch [bz#1001216] -- kvm-qemu-help-Sort-devices-by-logical-functionality.patch [bz#1001216] -- kvm-devices-Associate-devices-to-their-logical-category.patch [bz#1001216] -- kvm-Mostly-revert-qemu-help-Sort-devices-by-logical-func.patch [bz#1001216] -- kvm-qdev-monitor-Group-device_add-help-and-info-qdm-by-c.patch [bz#1001216] -- kvm-qdev-Replace-no_user-by-cannot_instantiate_with_devi.patch [bz#1001216] -- kvm-sysbus-Set-cannot_instantiate_with_device_add_yet.patch [bz#1001216] -- kvm-cpu-Document-why-cannot_instantiate_with_device_add_.patch [bz#1001216] -- kvm-apic-Document-why-cannot_instantiate_with_device_add.patch [bz#1001216] -- kvm-pci-host-Consistently-set-cannot_instantiate_with_de.patch [bz#1001216] -- kvm-ich9-Document-why-cannot_instantiate_with_device_add.patch [bz#1001216] -- kvm-piix3-piix4-Clean-up-use-of-cannot_instantiate_with_.patch [bz#1001216] -- kvm-vt82c686-Clean-up-use-of-cannot_instantiate_with_dev.patch [bz#1001216] -- kvm-isa-Clean-up-use-of-cannot_instantiate_with_device_a.patch [bz#1001216] -- kvm-qdev-Do-not-let-the-user-try-to-device_add-when-it-c.patch [bz#1001216] -- kvm-rhel-Revert-unwanted-cannot_instantiate_with_device_.patch [bz#1001216] -- kvm-rhel-Revert-downstream-changes-to-unused-default-con.patch [bz#1001076] -- kvm-rhel-Drop-cfi.pflash01-and-isa-ide-device.patch [bz#1001076] -- kvm-rhel-Drop-isa-vga-device.patch [bz#1001088] -- kvm-rhel-Make-isa-cirrus-vga-device-unavailable.patch [bz#1001088] -- kvm-rhel-Make-ccid-card-emulated-device-unavailable.patch [bz#1001123] -- kvm-x86-fix-migration-from-pre-version-12.patch [bz#1005695] -- kvm-x86-cpuid-reconstruct-leaf-0Dh-data.patch [bz#1005695] -- kvm-kvmvapic-Catch-invalid-ROM-size.patch [bz#920021] -- kvm-kvmvapic-Enter-inactive-state-on-hardware-reset.patch [bz#920021] -- kvm-kvmvapic-Clear-also-physical-ROM-address-when-enteri.patch [bz#920021] -- kvm-block-optionally-disable-live-block-jobs.patch [bz#987582] -- kvm-rpm-spec-template-disable-live-block-ops-for-rhel-en.patch [bz#987582] -- kvm-migration-disable-live-block-migration-b-i-for-rhel-.patch [bz#1022392] -- kvm-Build-ceph-rbd-only-for-rhev.patch [bz#987583] -- kvm-spec-Disable-host-cdrom-RHEL-only.patch [bz#760885] -- kvm-rhel-Make-pci-serial-2x-and-pci-serial-4x-device-una.patch [bz#1001180] -- kvm-usb-host-libusb-Fix-reset-handling.patch [bz#980415] -- kvm-usb-host-libusb-Configuration-0-may-be-a-valid-confi.patch [bz#980383] -- kvm-usb-host-libusb-Detach-kernel-drivers-earlier.patch [bz#980383] -- kvm-monitor-Remove-pci_add-command-for-Red-Hat-Enterpris.patch [bz#1010858] -- kvm-monitor-Remove-pci_del-command-for-Red-Hat-Enterpris.patch [bz#1010858] -- kvm-monitor-Remove-usb_add-del-commands-for-Red-Hat-Ente.patch [bz#1010858] -- kvm-monitor-Remove-host_net_add-remove-for-Red-Hat-Enter.patch [bz#1010858] -- kvm-fw_cfg-add-API-to-find-FW-cfg-object.patch [bz#990601] -- kvm-pvpanic-use-FWCfgState-explicitly.patch [bz#990601] -- kvm-pvpanic-initialization-cleanup.patch [bz#990601] -- kvm-pvpanic-fix-fwcfg-for-big-endian-hosts.patch [bz#990601] -- kvm-hw-misc-make-pvpanic-known-to-user.patch [bz#990601] -- kvm-gdbstub-do-not-restart-crashed-guest.patch [bz#990601] -- kvm-gdbstub-fix-for-commit-87f25c12bfeaaa0c41fb857713bbc.patch [bz#990601] -- kvm-vl-allow-cont-from-panicked-state.patch [bz#990601] -- kvm-hw-misc-don-t-create-pvpanic-device-by-default.patch [bz#990601] -- kvm-block-vhdx-add-migration-blocker.patch [bz#1007176] -- kvm-qemu-kvm.spec-add-vhdx-to-the-read-only-block-driver.patch [bz#1007176] -- kvm-qemu-kvm.spec-Add-VPC-VHD-driver-to-the-block-read-o.patch [bz#1007176] -- Resolves: bz#1001076 - (Disable or remove other block devices we won't support) -- Resolves: bz#1001088 - (Disable or remove display devices we won't support) -- Resolves: bz#1001123 - (Disable or remove device ccid-card-emulated) -- Resolves: bz#1001180 - (Disable or remove devices pci-serial-2x, pci-serial-4x) -- Resolves: bz#1001216 - (Fix no_user or provide another way make devices unavailable with -device / device_add) -- Resolves: bz#1005695 - (QEMU should hide CPUID.0Dh values that it does not support) -- Resolves: bz#1007176 - (Add VPC and VHDX file formats as supported in qemu-kvm (read-only)) -- Resolves: bz#1010858 - (Disable unused human monitor commands) -- Resolves: bz#1022392 - (Disable live-storage-migration in qemu-kvm (migrate -b/-i)) -- Resolves: bz#1025740 - (Saving VM state on qcow2 images results in VM state corruption) -- Resolves: bz#760885 - (Disable host cdrom passthrough) -- Resolves: bz#920021 - (qemu-kvm segment fault when reboot guest after hot unplug device with option ROM) -- Resolves: bz#980383 - (The usb3.0 stick can't be returned back to host after shutdown guest with usb3.0 pass-through) -- Resolves: bz#980415 - (libusbx: error [_open_sysfs_attr] open /sys/bus/usb/devices/4-1/bConfigurationValue failed ret=-1 errno=2) -- Resolves: bz#987582 - (Initial Virtualization Differentiation for RHEL7 (Live snapshots)) -- Resolves: bz#987583 - (Initial Virtualization Differentiation for RHEL7 (Ceph enablement)) -- Resolves: bz#989646 - (Support backup vendors in qemu to access qcow disk readonly) -- Resolves: bz#990601 - (pvpanic device triggers guest bugs when present by default) - -* Wed Nov 06 2013 Miroslav Rezanina - 1.5.3-14.el7 -- kvm-target-i386-remove-tabs-from-target-i386-cpu.h.patch [bz#928867] -- kvm-migrate-vPMU-state.patch [bz#928867] -- kvm-blockdev-do-not-default-cache.no-flush-to-true.patch [bz#1009993] -- kvm-virtio-blk-do-not-relay-a-previous-driver-s-WCE-conf.patch [bz#1009993] -- kvm-rng-random-use-error_setg_file_open.patch [bz#907743] -- kvm-block-mirror_complete-use-error_setg_file_open.patch [bz#907743] -- kvm-blockdev-use-error_setg_file_open.patch [bz#907743] -- kvm-cpus-use-error_setg_file_open.patch [bz#907743] -- kvm-dump-qmp_dump_guest_memory-use-error_setg_file_open.patch [bz#907743] -- kvm-savevm-qmp_xen_save_devices_state-use-error_setg_fil.patch [bz#907743] -- kvm-block-bdrv_reopen_prepare-don-t-use-QERR_OPEN_FILE_F.patch [bz#907743] -- kvm-qerror-drop-QERR_OPEN_FILE_FAILED-macro.patch [bz#907743] -- kvm-rhel-Drop-ivshmem-device.patch [bz#787463] -- kvm-usb-remove-old-usb-host-code.patch [bz#1001144] -- kvm-Add-rhel6-pxe-roms-files.patch [bz#997702] -- kvm-Add-rhel6-pxe-rom-to-redhat-rpm.patch [bz#997702] -- kvm-Fix-migration-from-rhel6.5-to-rhel7-with-ipxe.patch [bz#997702] -- kvm-pc-Don-t-prematurely-explode-QEMUMachineInitArgs.patch [bz#994490] -- kvm-pc-Don-t-explode-QEMUMachineInitArgs-into-local-vari.patch [bz#994490] -- kvm-smbios-Normalize-smbios_entry_add-s-error-handling-t.patch [bz#994490] -- kvm-smbios-Convert-to-QemuOpts.patch [bz#994490] -- kvm-smbios-Improve-diagnostics-for-conflicting-entries.patch [bz#994490] -- kvm-smbios-Make-multiple-smbios-type-accumulate-sanely.patch [bz#994490] -- kvm-smbios-Factor-out-smbios_maybe_add_str.patch [bz#994490] -- kvm-hw-Pass-QEMUMachine-to-its-init-method.patch [bz#994490] -- kvm-smbios-Set-system-manufacturer-product-version-by-de.patch [bz#994490] -- kvm-smbios-Decouple-system-product-from-QEMUMachine.patch [bz#994490] -- kvm-rhel-SMBIOS-type-1-branding.patch [bz#994490] -- kvm-Add-disable-rhev-features-option-to-configure.patch [] -- Resolves: bz#1001144 - (Disable or remove device usb-host-linux) -- Resolves: bz#1009993 - (RHEL7 guests do not issue fdatasyncs on virtio-blk) -- Resolves: bz#787463 - (disable ivshmem (was: [Hitachi 7.0 FEAT] Support ivshmem (Inter-VM Shared Memory))) -- Resolves: bz#907743 - (qemu-ga: empty reason string for OpenFileFailed error) -- Resolves: bz#928867 - (Virtual PMU support during live migration - qemu-kvm) -- Resolves: bz#994490 - (Set per-machine-type SMBIOS strings) -- Resolves: bz#997702 - (Migration from RHEL6.5 host to RHEL7.0 host is failed with virtio-net device) - -* Tue Nov 05 2013 Miroslav Rezanina - 1.5.3-13.el7 -- kvm-seabios-paravirt-allow-more-than-1TB-in-x86-guest.patch [bz#989677] -- kvm-scsi-prefer-UUID-to-VM-name-for-the-initiator-name.patch [bz#1006468] -- kvm-Fix-incorrect-rhel_rhev_conflicts-macro-usage.patch [bz#1017693] -- Resolves: bz#1006468 - (libiscsi initiator name should use vm UUID) -- Resolves: bz#1017693 - (incorrect use of rhel_rhev_conflicts) -- Resolves: bz#989677 - ([HP 7.0 FEAT]: Increase KVM guest supported memory to 4TiB) - -* Mon Nov 04 2013 Michal Novotny - 1.5.3-12.el7 -- kvm-vl-Clean-up-parsing-of-boot-option-argument.patch [bz#997817] -- kvm-qemu-option-check_params-is-now-unused-drop-it.patch [bz#997817] -- kvm-vl-Fix-boot-order-and-once-regressions-and-related-b.patch [bz#997817] -- kvm-vl-Rename-boot_devices-to-boot_order-for-consistency.patch [bz#997817] -- kvm-pc-Make-no-fd-bootchk-stick-across-boot-order-change.patch [bz#997817] -- kvm-doc-Drop-ref-to-Bochs-from-no-fd-bootchk-documentati.patch [bz#997817] -- kvm-libqtest-Plug-fd-and-memory-leaks-in-qtest_quit.patch [bz#997817] -- kvm-libqtest-New-qtest_end-to-go-with-qtest_start.patch [bz#997817] -- kvm-qtest-Don-t-reset-on-qtest-chardev-connect.patch [bz#997817] -- kvm-boot-order-test-New-covering-just-PC-for-now.patch [bz#997817] -- kvm-qemu-ga-execute-fsfreeze-freeze-in-reverse-order-of-.patch [bz#1019352] -- kvm-rbd-link-and-load-librbd-dynamically.patch [bz#989608] -- kvm-rbd-Only-look-for-qemu-specific-copy-of-librbd.so.1.patch [bz#989608] -- kvm-spec-Whitelist-rbd-block-driver.patch [bz#989608] -- Resolves: bz#1019352 - (qemu-guest-agent: "guest-fsfreeze-freeze" deadlocks if the guest have mounted disk images) -- Resolves: bz#989608 - ([7.0 FEAT] qemu runtime support for librbd backend (ceph)) -- Resolves: bz#997817 - (-boot order and -boot once regressed since RHEL-6) - -* Thu Oct 31 2013 Miroslav Rezanina - 1.5.3-11.el7 -- kvm-chardev-fix-pty_chr_timer.patch [bz#994414] -- kvm-qemu-socket-zero-initialize-SocketAddress.patch [bz#922010] -- kvm-qemu-socket-drop-pointless-allocation.patch [bz#922010] -- kvm-qemu-socket-catch-monitor_get_fd-failures.patch [bz#922010] -- kvm-qemu-char-check-optional-fields-using-has_.patch [bz#922010] -- kvm-error-add-error_setg_file_open-helper.patch [bz#922010] -- kvm-qemu-char-use-more-specific-error_setg_-variants.patch [bz#922010] -- kvm-qemu-char-print-notification-to-stderr.patch [bz#922010] -- kvm-qemu-char-fix-documentation-for-telnet-wait-socket-f.patch [bz#922010] -- kvm-qemu-char-don-t-leak-opts-on-error.patch [bz#922010] -- kvm-qemu-char-use-ChardevBackendKind-in-CharDriver.patch [bz#922010] -- kvm-qemu-char-minor-mux-chardev-fixes.patch [bz#922010] -- kvm-qemu-char-add-chardev-mux-support.patch [bz#922010] -- kvm-qemu-char-report-udp-backend-errors.patch [bz#922010] -- kvm-qemu-socket-don-t-leak-opts-on-error.patch [bz#922010] -- kvm-chardev-handle-qmp_chardev_add-KIND_MUX-failure.patch [bz#922010] -- kvm-acpi-piix4-Enable-qemu-kvm-compatibility-mode.patch [bz#1019474] -- kvm-target-i386-support-loading-of-cpu-xsave-subsection.patch [bz#1004743] -- Resolves: bz#1004743 - (XSAVE migration format not compatible between RHEL6 and RHEL7) -- Resolves: bz#1019474 - (RHEL-7 can't load piix4_pm migration section from RHEL-6.5) -- Resolves: bz#922010 - (RFE: support hotplugging chardev & serial ports) -- Resolves: bz#994414 - (hot-unplug chardev with pty backend caused qemu Segmentation fault) - -* Thu Oct 17 2013 Miroslav Rezanina - 1.5.3-10.el7 -- kvm-xhci-fix-endpoint-interval-calculation.patch [bz#1001604] -- kvm-xhci-emulate-intr-endpoint-intervals-correctly.patch [bz#1001604] -- kvm-xhci-reset-port-when-disabling-slot.patch [bz#1001604] -- kvm-Revert-usb-hub-report-status-changes-only-once.patch [bz#1001604] -- kvm-target-i386-Set-model-6-on-qemu64-qemu32-CPU-models.patch [bz#1004290] -- kvm-pc-rhel6-doesn-t-have-APIC-on-pentium-CPU-models.patch [bz#918907] -- kvm-pc-RHEL-6-had-x2apic-set-on-Opteron_G-123.patch [bz#918907] -- kvm-pc-RHEL-6-don-t-have-RDTSCP.patch [bz#918907] -- kvm-scsi-Fix-scsi_bus_legacy_add_drive-scsi-generic-with.patch [bz#1009285] -- kvm-seccomp-fine-tuning-whitelist-by-adding-times.patch [bz#1004175] -- kvm-block-add-bdrv_write_zeroes.patch [bz#921465] -- kvm-block-raw-add-bdrv_co_write_zeroes.patch [bz#921465] -- kvm-rdma-export-qemu_fflush.patch [bz#921465] -- kvm-block-migration-efficiently-encode-zero-blocks.patch [bz#921465] -- kvm-Fix-real-mode-guest-migration.patch [bz#921465] -- kvm-Fix-real-mode-guest-segments-dpl-value-in-savevm.patch [bz#921465] -- kvm-migration-add-autoconvergence-documentation.patch [bz#921465] -- kvm-migration-send-total-time-in-QMP-at-completed-stage.patch [bz#921465] -- kvm-migration-don-t-use-uninitialized-variables.patch [bz#921465] -- kvm-pc-drop-external-DSDT-loading.patch [bz#921465] -- kvm-hda-codec-refactor-common-definitions-into-a-header-.patch [bz#954195] -- kvm-hda-codec-make-mixemu-selectable-at-runtime.patch [bz#954195] -- kvm-audio-remove-CONFIG_MIXEMU-configure-option.patch [bz#954195] -- kvm-pc_piix-disable-mixer-for-6.4.0-machine-types-and-be.patch [bz#954195] -- kvm-spec-mixemu-config-option-is-no-longer-supported-and.patch [bz#954195] -- Resolves: bz#1001604 - (usb hub doesn't work properly (win7 sees downstream port #1 only).) -- Resolves: bz#1004175 - ('-sandbox on' option cause qemu-kvm process hang) -- Resolves: bz#1004290 - (Use model 6 for qemu64 and intel cpus) -- Resolves: bz#1009285 - (-device usb-storage,serial=... crashes with SCSI generic drive) -- Resolves: bz#918907 - (provide backwards-compatible RHEL specific machine types in QEMU - CPU features) -- Resolves: bz#921465 - (Migration can not finished even the "remaining ram" is already 0 kb) -- Resolves: bz#954195 - (RHEL machines <=6.4 should not use mixemu) - -* Thu Oct 10 2013 Miroslav Rezanina - 1.5.3-9.el7 -- kvm-qxl-fix-local-renderer.patch [bz#1005036] -- kvm-spec-include-userspace-iSCSI-initiator-in-block-driv.patch [bz#923843] -- kvm-linux-headers-update-to-kernel-3.10.0-26.el7.patch [bz#1008987] -- kvm-target-i386-add-feature-kvm_pv_unhalt.patch [bz#1008987] -- kvm-warn-if-num-cpus-is-greater-than-num-recommended.patch [bz#1010881] -- kvm-char-move-backends-io-watch-tag-to-CharDriverState.patch [bz#1007222] -- kvm-char-use-common-function-to-disable-callbacks-on-cha.patch [bz#1007222] -- kvm-char-remove-watch-callback-on-chardev-detach-from-fr.patch [bz#1007222] -- kvm-block-don-t-lose-data-from-last-incomplete-sector.patch [bz#1017049] -- kvm-vmdk-fix-cluster-size-check-for-flat-extents.patch [bz#1017049] -- kvm-qemu-iotests-add-monolithicFlat-creation-test-to-059.patch [bz#1017049] -- Resolves: bz#1005036 - (When using “-vga qxl” together with “-display vnc=:5” or “-display sdl” qemu displays pixel garbage) -- Resolves: bz#1007222 - (QEMU core dumped when do hot-unplug virtio serial port during transfer file between host to guest with virtio serial through TCP socket) -- Resolves: bz#1008987 - (pvticketlocks: add kvm feature kvm_pv_unhalt) -- Resolves: bz#1010881 - (backport vcpu soft limit warning) -- Resolves: bz#1017049 - (qemu-img refuses to open the vmdk format image its created) -- Resolves: bz#923843 - (include userspace iSCSI initiator in block driver whitelist) - -* Wed Oct 09 2013 Miroslav Rezanina - qemu-kvm-1.5.3-8.el7 -- kvm-vmdk-Make-VMDK3Header-and-VmdkGrainMarker-QEMU_PACKE.patch [bz#995866] -- kvm-vmdk-use-unsigned-values-for-on-disk-header-fields.patch [bz#995866] -- kvm-qemu-iotests-add-poke_file-utility-function.patch [bz#995866] -- kvm-qemu-iotests-add-empty-test-case-for-vmdk.patch [bz#995866] -- kvm-vmdk-check-granularity-field-in-opening.patch [bz#995866] -- kvm-vmdk-check-l2-table-size-when-opening.patch [bz#995866] -- kvm-vmdk-check-l1-size-before-opening-image.patch [bz#995866] -- kvm-vmdk-use-heap-allocation-for-whole_grain.patch [bz#995866] -- kvm-vmdk-rename-num_gtes_per_gte-to-num_gtes_per_gt.patch [bz#995866] -- kvm-vmdk-Move-l1_size-check-into-vmdk_add_extent.patch [bz#995866] -- kvm-vmdk-fix-L1-and-L2-table-size-in-vmdk3-open.patch [bz#995866] -- kvm-vmdk-support-vmfsSparse-files.patch [bz#995866] -- kvm-vmdk-support-vmfs-files.patch [bz#995866] -- Resolves: bz#995866 - (fix vmdk support to ESX images) - -* Thu Sep 26 2013 Miroslav Rezanina - qemu-kvm-1.5.3-7.el7 -- kvm-spice-fix-display-initialization.patch [bz#974887] -- kvm-Remove-i82550-network-card-emulation.patch [bz#921983] -- kvm-Remove-usb-wacom-tablet.patch [bz#903914] -- kvm-Disable-usb-uas.patch [bz#903914] -- kvm-Disable-vhost-scsi.patch [bz#994642] -- kvm-Remove-no-hpet-option.patch [bz#947441] -- kvm-Disable-isa-parallel.patch [bz#1002286] -- kvm-xhci-implement-warm-port-reset.patch [bz#949514] -- kvm-usb-add-serial-bus-property.patch [bz#953304] -- kvm-rhel6-compat-usb-serial-numbers.patch [bz#953304] -- kvm-vmdk-fix-comment-for-vmdk_co_write_zeroes.patch [bz#995866] -- kvm-gluster-Add-image-resize-support.patch [bz#1007226] -- kvm-block-Introduce-bs-zero_beyond_eof.patch [bz#1007226] -- kvm-block-Produce-zeros-when-protocols-reading-beyond-en.patch [bz#1007226] -- kvm-gluster-Abort-on-AIO-completion-failure.patch [bz#1007226] -- kvm-Preparation-for-usb-bt-dongle-conditional-build.patch [bz#1001131] -- kvm-Remove-dev-bluetooth.c-dependency-from-vl.c.patch [bz#1001131] -- kvm-exec-Fix-Xen-RAM-allocation-with-unusual-options.patch [bz#1009328] -- kvm-exec-Clean-up-fall-back-when-mem-path-allocation-fai.patch [bz#1009328] -- kvm-exec-Reduce-ifdeffery-around-mem-path.patch [bz#1009328] -- kvm-exec-Simplify-the-guest-physical-memory-allocation-h.patch [bz#1009328] -- kvm-exec-Drop-incorrect-dead-S390-code-in-qemu_ram_remap.patch [bz#1009328] -- kvm-exec-Clean-up-unnecessary-S390-ifdeffery.patch [bz#1009328] -- kvm-exec-Don-t-abort-when-we-can-t-allocate-guest-memory.patch [bz#1009328] -- kvm-pc_sysfw-Fix-ISA-BIOS-init-for-ridiculously-big-flas.patch [bz#1009328] -- kvm-virtio-scsi-Make-type-virtio-scsi-common-abstract.patch [bz#903918] -- kvm-qga-move-logfiles-to-new-directory-for-easier-SELinu.patch [bz#1009491] -- kvm-target-i386-add-cpu64-rhel6-CPU-model.patch [bz#918907] -- kvm-fix-steal-time-MSR-vmsd-callback-to-proper-opaque-ty.patch [bz#903889] -- Resolves: bz#1001131 - (Disable or remove device usb-bt-dongle) -- Resolves: bz#1002286 - (Disable or remove device isa-parallel) -- Resolves: bz#1007226 - (Introduce bs->zero_beyond_eof) -- Resolves: bz#1009328 - ([RFE] Nicer error report when qemu-kvm can't allocate guest RAM) -- Resolves: bz#1009491 - (move qga logfiles to new /var/log/qemu-ga/ directory [RHEL-7]) -- Resolves: bz#903889 - (The value of steal time in "top" command always is "0.0% st" after guest migration) -- Resolves: bz#903914 - (Disable or remove usb related devices that we will not support) -- Resolves: bz#903918 - (Disable or remove emulated SCSI devices we will not support) -- Resolves: bz#918907 - (provide backwards-compatible RHEL specific machine types in QEMU - CPU features) -- Resolves: bz#921983 - (Disable or remove emulated network devices that we will not support) -- Resolves: bz#947441 - (HPET device must be disabled) -- Resolves: bz#949514 - (fail to passthrough the USB3.0 stick to windows guest with xHCI controller under pc-i440fx-1.4) -- Resolves: bz#953304 - (Serial number of some USB devices must be fixed for older RHEL machine types) -- Resolves: bz#974887 - (the screen of guest fail to display correctly when use spice + qxl driver) -- Resolves: bz#994642 - (should disable vhost-scsi) -- Resolves: bz#995866 - (fix vmdk support to ESX images) - -* Mon Sep 23 2013 Paolo Bonzini - qemu-kvm-1.5.3-6.el7 -- re-enable spice -- Related: #979953 - -* Mon Sep 23 2013 Paolo Bonzini - qemu-kvm-1.5.3-5.el7 -- temporarily disable spice until libiscsi rebase is complete -- Related: #979953 - -* Thu Sep 19 2013 Michal Novotny - qemu-kvm-1.5.3-4.el7 -- kvm-block-package-preparation-code-in-qmp_transaction.patch [bz#1005818] -- kvm-block-move-input-parsing-code-in-qmp_transaction.patch [bz#1005818] -- kvm-block-package-committing-code-in-qmp_transaction.patch [bz#1005818] -- kvm-block-package-rollback-code-in-qmp_transaction.patch [bz#1005818] -- kvm-block-make-all-steps-in-qmp_transaction-as-callback.patch [bz#1005818] -- kvm-blockdev-drop-redundant-proto_drv-check.patch [bz#1005818] -- kvm-block-Don-t-parse-protocol-from-file.filename.patch [bz#1005818] -- kvm-Revert-block-Disable-driver-specific-options-for-1.5.patch [bz#1005818] -- kvm-qcow2-Add-refcount-update-reason-to-all-callers.patch [bz#1005818] -- kvm-qcow2-Options-to-enable-discard-for-freed-clusters.patch [bz#1005818] -- kvm-qcow2-Batch-discards.patch [bz#1005818] -- kvm-block-Always-enable-discard-on-the-protocol-level.patch [bz#1005818] -- kvm-qapi.py-Avoid-code-duplication.patch [bz#1005818] -- kvm-qapi.py-Allow-top-level-type-reference-for-command-d.patch [bz#1005818] -- kvm-qapi-schema-Use-BlockdevSnapshot-type-for-blockdev-s.patch [bz#1005818] -- kvm-qapi-types.py-Implement-base-for-unions.patch [bz#1005818] -- kvm-qapi-visit.py-Split-off-generate_visit_struct_fields.patch [bz#1005818] -- kvm-qapi-visit.py-Implement-base-for-unions.patch [bz#1005818] -- kvm-docs-Document-QAPI-union-types.patch [bz#1005818] -- kvm-qapi-Add-visitor-for-implicit-structs.patch [bz#1005818] -- kvm-qapi-Flat-unions-with-arbitrary-discriminator.patch [bz#1005818] -- kvm-qapi-Add-consume-argument-to-qmp_input_get_object.patch [bz#1005818] -- kvm-qapi.py-Maintain-a-list-of-union-types.patch [bz#1005818] -- kvm-qapi-qapi-types.py-native-list-support.patch [bz#1005818] -- kvm-qapi-Anonymous-unions.patch [bz#1005818] -- kvm-block-Allow-driver-option-on-the-top-level.patch [bz#1005818] -- kvm-QemuOpts-Add-qemu_opt_unset.patch [bz#1005818] -- kvm-blockdev-Rename-I-O-throttling-options-for-QMP.patch [bz#1005818] -- kvm-qemu-iotests-Update-051-reference-output.patch [bz#1005818] -- kvm-blockdev-Rename-readonly-option-to-read-only.patch [bz#1005818] -- kvm-blockdev-Split-up-cache-option.patch [bz#1005818] -- kvm-qcow2-Use-dashes-instead-of-underscores-in-options.patch [bz#1005818] -- kvm-qemu-iotests-filter-QEMU-version-in-monitor-banner.patch [bz#1006959] -- kvm-tests-set-MALLOC_PERTURB_-to-expose-memory-bugs.patch [bz#1006959] -- kvm-qemu-iotests-Whitespace-cleanup.patch [bz#1006959] -- kvm-qemu-iotests-Fixed-test-case-026.patch [bz#1006959] -- kvm-qemu-iotests-Fix-test-038.patch [bz#1006959] -- kvm-qemu-iotests-Remove-lsi53c895a-tests-from-051.patch [bz#1006959] -- Resolves: bz#1005818 - (qcow2: Backport discard command line options) -- Resolves: bz#1006959 - (qemu-iotests false positives) - -* Thu Aug 29 2013 Miroslav Rezanina - qemu-kvm-1.5.3-3.el7 -- Fix rhel/rhev split - -* Thu Aug 29 2013 Miroslav Rezanina - qemu-kvm-1.5.3-2.el7 -- kvm-osdep-add-qemu_get_local_state_pathname.patch [bz#964304] -- kvm-qga-determine-default-state-dir-and-pidfile-dynamica.patch [bz#964304] -- kvm-configure-don-t-save-any-fixed-local_statedir-for-wi.patch [bz#964304] -- kvm-qga-create-state-directory-on-win32.patch [bz#964304] -- kvm-qga-save-state-directory-in-ga_install_service-RHEL-.patch [bz#964304] -- kvm-Makefile-create-.-var-run-when-installing-the-POSIX-.patch [bz#964304] -- kvm-qemu-option-Fix-qemu_opts_find-for-null-id-arguments.patch [bz#980782] -- kvm-qemu-option-Fix-qemu_opts_set_defaults-for-corner-ca.patch [bz#980782] -- kvm-vl-New-qemu_get_machine_opts.patch [bz#980782] -- kvm-Fix-machine-options-accel-kernel_irqchip-kvm_shadow_.patch [bz#980782] -- kvm-microblaze-Fix-latent-bug-with-default-DTB-lookup.patch [bz#980782] -- kvm-Simplify-machine-option-queries-with-qemu_get_machin.patch [bz#980782] -- kvm-pci-add-VMSTATE_MSIX.patch [bz#838170] -- kvm-xhci-add-XHCISlot-addressed.patch [bz#838170] -- kvm-xhci-add-xhci_alloc_epctx.patch [bz#838170] -- kvm-xhci-add-xhci_init_epctx.patch [bz#838170] -- kvm-xhci-add-live-migration-support.patch [bz#838170] -- kvm-pc-set-level-xlevel-correctly-on-486-qemu32-CPU-mode.patch [bz#918907] -- kvm-pc-Remove-incorrect-rhel6.x-compat-model-value-for-C.patch [bz#918907] -- kvm-pc-rhel6.x-has-x2apic-present-on-Conroe-Penryn-Nehal.patch [bz#918907] -- kvm-pc-set-compat-CPUID-0x80000001-.EDX-bits-on-Westmere.patch [bz#918907] -- kvm-pc-Remove-PCLMULQDQ-from-Westmere-on-rhel6.x-machine.patch [bz#918907] -- kvm-pc-SandyBridge-rhel6.x-compat-fixes.patch [bz#918907] -- kvm-pc-Haswell-doesn-t-have-rdtscp-on-rhel6.x.patch [bz#918907] -- kvm-i386-fix-LAPIC-TSC-deadline-timer-save-restore.patch [bz#972433] -- kvm-all.c-max_cpus-should-not-exceed-KVM-vcpu-limit.patch [bz#996258] -- kvm-add-timestamp-to-error_report.patch [bz#906937] -- kvm-Convert-stderr-message-calling-error_get_pretty-to-e.patch [bz#906937] -- Resolves: bz#838170 - (Add live migration support for USB [xhci, usb-uas]) -- Resolves: bz#906937 - ([Hitachi 7.0 FEAT][QEMU]Add a time stamp to error message (*)) -- Resolves: bz#918907 - (provide backwards-compatible RHEL specific machine types in QEMU - CPU features) -- Resolves: bz#964304 - (Windows guest agent service failed to be started) -- Resolves: bz#972433 - ("INFO: rcu_sched detected stalls" after RHEL7 kvm vm migrated) -- Resolves: bz#980782 - (kernel_irqchip defaults to off instead of on without -machine) -- Resolves: bz#996258 - (boot guest with maxcpu=255 successfully but actually max number of vcpu is 160) - -* Wed Aug 28 2013 Miroslav Rezanina - 10:1.5.3-1 -- Rebase to qemu 1.5.3 - -* Tue Aug 20 2013 Miroslav Rezanina - 10:1.5.2-4 -- qemu: guest agent creates files with insecure permissions in deamon mode [rhel-7.0] (rhbz 974444) -- update qemu-ga config & init script in RHEL7 wrt. fsfreeze hook (rhbz 969942) -- RHEL7 does not have equivalent functionality for __com.redhat_qxl_screendump (rhbz 903910) -- SEP flag behavior for CPU models of RHEL6 machine types should be compatible (rhbz 960216) -- crash command can not read the dump-guest-memory file when paging=false [RHEL-7] (rhbz 981582) -- RHEL 7 qemu-kvm fails to build on F19 host due to libusb deprecated API (rhbz 996469) -- Live migration support in virtio-blk-data-plane (rhbz 995030) -- qemu-img resize can execute successfully even input invalid syntax (rhbz 992935) - -* Fri Aug 09 2013 Miroslav Rezanina - 10:1.5.2-3 -- query mem info from monitor would cause qemu-kvm hang [RHEL-7] (rhbz #970047) -- Throttle-down guest to help with live migration convergence (backport to RHEL7.0) (rhbz #985958) -- disable (for now) EFI-enabled roms (rhbz #962563) -- qemu-kvm "vPMU passthrough" mode breaks migration, shouldn't be enabled by default (rhbz #853101) -- Remove pending watches after virtserialport unplug (rhbz #992900) -- Containment of error when an SR-IOV device encounters an error... (rhbz #984604) - -* Wed Jul 31 2013 Miroslav Rezanina - 10:1.5.2-2 -- SPEC file prepared for RHEL/RHEV split (rhbz #987165) -- RHEL guest( sata disk ) can not boot up (rhbz #981723) -- Kill the "use flash device for BIOS unless KVM" misfeature (rhbz #963280) -- Provide RHEL-6 machine types (rhbz #983991) -- Change s3/s4 default to "disable". (rhbz #980840) -- Support Virtual Memory Disk Format in qemu (rhbz #836675) -- Glusterfs backend for QEMU (rhbz #805139) - -* Tue Jul 02 2013 Miroslav Rezanina - 10:1.5.2-1 -- Rebase to 1.5.2 - -* Tue Jul 02 2013 Miroslav Rezanina - 10:1.5.1-2 -- Fix package package version info (bz #952996) -- pc: Replace upstream machine types by RHEL-7 types (bz #977864) -- target-i386: Update model values on Conroe/Penryn/Nehalem CPU model (bz #861210) -- target-i386: Set level=4 on Conroe/Penryn/Nehalem (bz #861210) - -* Fri Jun 28 2013 Miroslav Rezanina - 10:1.5.1-1 -- Rebase to 1.5.1 -- Change epoch to 10 to obsolete RHEL-6 qemu-kvm-rhev package (bz #818626) - -* Fri May 24 2013 Miroslav Rezanina - 3:1.5.0-2 -- Enable werror (bz #948290) -- Enable nbd driver (bz #875871) -- Fix udev rules file location (bz #958860) -- Remove +x bit from systemd unit files (bz #965000) -- Drop unneeded kvm.modules on x86 (bz #963642) -- Fix build flags -- Enable libusb - -* Thu May 23 2013 Miroslav Rezanina - 3:1.5.0-1 -- Rebase to 1.5.0 - -* Tue Apr 23 2013 Miroslav Rezanina - 3:1.4.0-4 -- Enable build of libcacard subpackage for non-x86_64 archs (bz #873174) -- Enable build of qemu-img subpackage for non-x86_64 archs (bz #873174) -- Enable build of qemu-guest-agent subpackage for non-x86_64 archs (bz #873174) - -* Tue Apr 23 2013 Miroslav Rezanina - 3:1.4.0-3 -- Enable/disable features supported by rhel7 -- Use qemu-kvm instead of qemu in filenames and pathes - -* Fri Apr 19 2013 Daniel Mach - 3:1.4.0-2.1 -- Rebuild for cyrus-sasl - -* Fri Apr 05 2013 Miroslav Rezanina - 3:1.4.0-2 -- Synchronization with Fedora 19 package version 2:1.4.0-8 - -* Wed Apr 03 2013 Daniel Mach - 3:1.4.0-1.1 -- Rebuild for libseccomp - -* Thu Mar 07 2013 Miroslav Rezanina - 3:1.4.0-1 -- Rebase to 1.4.0 - -* Mon Feb 25 2013 Michal Novotny - 3:1.3.0-8 -- Missing package qemu-system-x86 in hardware certification kvm testing (bz#912433) -- Resolves: bz#912433 - (Missing package qemu-system-x86 in hardware certification kvm testing) - -* Fri Feb 22 2013 Alon Levy - 3:1.3.0-6 -- Bump epoch back to 3 since there has already been a 3 package release: - 3:1.2.0-20.el7 https://brewweb.devel.redhat.com/buildinfo?buildID=244866 -- Mark explicit libcacard dependency on new enough qemu-img to avoid conflict - since /usr/bin/vscclient was moved from qemu-img to libcacard subpackage. - -* Wed Feb 13 2013 Michal Novotny - 2:1.3.0-5 -- Fix patch contents for usb-redir (bz#895491) -- Resolves: bz#895491 - (PATCH: 0110-usb-redir-Add-flow-control-support.patch has been mangled on rebase !!) - -* Wed Feb 06 2013 Alon Levy - 2:1.3.0-4 -- Add patch from f19 package for libcacard missing error_set symbol. -- Resolves: bz#891552 - -* Mon Jan 07 2013 Michal Novotny - 2:1.3.0-3 -- Remove dependency on bogus qemu-kvm-kvm package [bz#870343] -- Resolves: bz#870343 - (qemu-kvm-1.2.0-16.el7 cant be installed) - -* Tue Dec 18 2012 Michal Novotny - 2:1.3.0-2 -- Rename qemu to qemu-kvm -- Move qemu-kvm to libexecdir - -* Fri Dec 07 2012 Cole Robinson - 2:1.3.0-1 -- Switch base tarball from qemu-kvm to qemu -- qemu 1.3 release -- Option to use linux VFIO driver to assign PCI devices -- Many USB3 improvements -- New paravirtualized hardware random number generator device. -- Support for Glusterfs volumes with "gluster://" -drive URI -- Block job commands for live block commit and storage migration - -* Wed Nov 28 2012 Alon Levy - 2:1.2.0-25 -* Merge libcacard into qemu, since they both use the same sources now. - -* Thu Nov 22 2012 Paolo Bonzini - 2:1.2.0-24 -- Move vscclient to qemu-common, qemu-nbd to qemu-img - -* Tue Nov 20 2012 Alon Levy - 2:1.2.0-23 -- Rewrite fix for bz #725965 based on fix for bz #867366 -- Resolve bz #867366 - -* Fri Nov 16 2012 Paolo Bonzini - 2:1.2.0-23 -- Backport --with separate_kvm support from EPEL branch - -* Fri Nov 16 2012 Paolo Bonzini - 2:1.2.0-22 -- Fix previous commit - -* Fri Nov 16 2012 Paolo Bonzini - 2:1.2.0-21 -- Backport commit 38f419f (configure: Fix CONFIG_QEMU_HELPERDIR generation, - 2012-10-17) - -* Thu Nov 15 2012 Paolo Bonzini - 2:1.2.0-20 -- Install qemu-bridge-helper as suid root -- Distribute a sample /etc/qemu/bridge.conf file - -* Thu Nov 1 2012 Hans de Goede - 2:1.2.0-19 -- Sync spice patches with upstream, minor bugfixes and set the qxl pci - device revision to 4 by default, so that guests know they can use - the new features - -* Tue Oct 30 2012 Cole Robinson - 2:1.2.0-18 -- Fix loading arm initrd if kernel is very large (bz #862766) -- Don't use reserved word 'function' in systemtap files (bz #870972) -- Drop assertion that was triggering when pausing guests w/ qxl (bz - #870972) - -* Sun Oct 28 2012 Cole Robinson - 2:1.2.0-17 -- Pull patches queued for qemu 1.2.1 - -* Fri Oct 19 2012 Paolo Bonzini - 2:1.2.0-16 -- add s390x KVM support -- distribute pre-built firmware or device trees for Alpha, Microblaze, S390 -- add missing system targets -- add missing linux-user targets -- fix previous commit - -* Thu Oct 18 2012 Dan Horák - 2:1.2.0-15 -- fix build on non-kvm arches like s390(x) - -* Wed Oct 17 2012 Paolo Bonzini - 2:1.2.0-14 -- Change SLOF Requires for the new version number - -* Thu Oct 11 2012 Paolo Bonzini - 2:1.2.0-13 -- Add ppc support to kvm.modules (original patch by David Gibson) -- Replace x86only build with kvmonly build: add separate defines and - conditionals for all packages, so that they can be chosen and - renamed in kvmonly builds and so that qemu has the appropriate requires -- Automatically pick libfdt dependancy -- Add knob to disable spice+seccomp - -* Fri Sep 28 2012 Paolo Bonzini - 2:1.2.0-12 -- Call udevadm on post, fixing bug 860658 - -* Fri Sep 28 2012 Hans de Goede - 2:1.2.0-11 -- Rebuild against latest spice-server and spice-protocol -- Fix non-seamless migration failing with vms with usb-redir devices, - to allow boxes to load such vms from disk - -* Tue Sep 25 2012 Hans de Goede - 2:1.2.0-10 -- Sync Spice patchsets with upstream (rhbz#860238) -- Fix building with usbredir >= 0.5.2 - -* Thu Sep 20 2012 Hans de Goede - 2:1.2.0-9 -- Sync USB and Spice patchsets with upstream - -* Sun Sep 16 2012 Richard W.M. Jones - 2:1.2.0-8 -- Use 'global' instead of 'define', and underscore in definition name, - n-v-r, and 'dist' tag of SLOF, all to fix RHBZ#855252. - -* Fri Sep 14 2012 Paolo Bonzini - 2:1.2.0-4 -- add versioned dependency from qemu-system-ppc to SLOF (BZ#855252) - -* Wed Sep 12 2012 Richard W.M. Jones - 2:1.2.0-3 -- Fix RHBZ#853408 which causes libguestfs failure. - -* Sat Sep 8 2012 Hans de Goede - 2:1.2.0-2 -- Fix crash on (seamless) migration -- Sync usbredir live migration patches with upstream - -* Fri Sep 7 2012 Hans de Goede - 2:1.2.0-1 -- New upstream release 1.2.0 final -- Add support for Spice seamless migration -- Add support for Spice dynamic monitors -- Add support for usb-redir live migration - -* Tue Sep 04 2012 Adam Jackson 1.2.0-0.5.rc1 -- Flip Requires: ceph >= foo to Conflicts: ceph < foo, so we pull in only the - libraries which we need and not the rest of ceph which we don't. - -* Tue Aug 28 2012 Cole Robinson 1.2.0-0.4.rc1 -- Update to 1.2.0-rc1 - -* Mon Aug 20 2012 Richard W.M. Jones - 1.2-0.3.20120806git3e430569 -- Backport Bonzini's vhost-net fix (RHBZ#848400). - -* Tue Aug 14 2012 Cole Robinson - 1.2-0.2.20120806git3e430569 -- Bump release number, previous build forgot but the dist bump helped us out - -* Tue Aug 14 2012 Cole Robinson - 1.2-0.1.20120806git3e430569 -- Revive qemu-system-{ppc*, sparc*} (bz 844502) -- Enable KVM support for all targets (bz 844503) - -* Mon Aug 06 2012 Cole Robinson - 1.2-0.1.20120806git3e430569.fc18 -- Update to git snapshot - -* Sun Jul 29 2012 Cole Robinson - 1.1.1-1 -- Upstream stable release 1.1.1 -- Fix systemtap tapsets (bz 831763) -- Fix VNC audio tunnelling (bz 840653) -- Don't renable ksm on update (bz 815156) -- Bump usbredir dep (bz 812097) -- Fix RPM install error on non-virt machines (bz 660629) -- Obsolete openbios to fix upgrade dependency issues (bz 694802) - -* Sat Jul 21 2012 Fedora Release Engineering - 2:1.1.0-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Tue Jul 10 2012 Richard W.M. Jones - 2:1.1.0-8 -- Re-diff previous patch so that it applies and actually apply it - -* Tue Jul 10 2012 Richard W.M. Jones - 2:1.1.0-7 -- Add patch to fix default machine options. This fixes libvirt - detection of qemu. -- Back out patch 1 which conflicts. - -* Fri Jul 6 2012 Hans de Goede - 2:1.1.0-5 -- Fix qemu crashing (on an assert) whenever USB-2.0 isoc transfers are used - -* Thu Jul 5 2012 Richard W.M. Jones - 2:1.1.0-4 -- Disable tests since they hang intermittently. -- Add kvmvapic.bin (replaces vapic.bin). -- Add cpus-x86_64.conf. qemu now creates /etc/qemu/target-x86_64.conf - as an empty file. -- Add qemu-icon.bmp. -- Add qemu-bridge-helper. -- Build and include virtfs-proxy-helper + man page (thanks Hans de Goede). - -* Wed Jul 4 2012 Hans de Goede - 2:1.1.0-1 -- New upstream release 1.1.0 -- Drop about a 100 spice + USB patches, which are all upstream - -* Mon Apr 23 2012 Paolo Bonzini - 2:1.0-17 -- Fix install failure due to set -e (rhbz #815272) - -* Mon Apr 23 2012 Paolo Bonzini - 2:1.0-16 -- Fix kvm.modules to exit successfully on non-KVM capable systems (rhbz #814932) - -* Thu Apr 19 2012 Hans de Goede - 2:1.0-15 -- Add a couple of backported QXL/Spice bugfixes -- Add spice volume control patches - -* Fri Apr 6 2012 Paolo Bonzini - 2:1.0-12 -- Add back PPC and SPARC user emulators -- Update binfmt rules from upstream - -* Mon Apr 2 2012 Hans de Goede - 2:1.0-11 -- Some more USB bugfixes from upstream - -* Thu Mar 29 2012 Eduardo Habkost - 2:1.0-12 -- Fix ExclusiveArch mistake that disabled all non-x86_64 builds on Fedora - -* Wed Mar 28 2012 Eduardo Habkost - 2:1.0-11 -- Use --with variables for build-time settings - -* Wed Mar 28 2012 Daniel P. Berrange - 2:1.0-10 -- Switch to use iPXE for netboot ROMs - -* Thu Mar 22 2012 Daniel P. Berrange - 2:1.0-9 -- Remove O_NOATIME for 9p filesystems - -* Mon Mar 19 2012 Daniel P. Berrange - 2:1.0-8 -- Move udev rules to /lib/udev/rules.d (rhbz #748207) - -* Fri Mar 9 2012 Hans de Goede - 2:1.0-7 -- Add a whole bunch of USB bugfixes from upstream - -* Mon Feb 13 2012 Daniel P. Berrange - 2:1.0-6 -- Add many more missing BRs for misc QEMU features -- Enable running of test suite during build - -* Tue Feb 07 2012 Justin M. Forbes - 2:1.0-5 -- Add support for virtio-scsi - -* Sun Feb 5 2012 Richard W.M. Jones - 2:1.0-4 -- Require updated ceph for latest librbd with rbd_flush symbol. - -* Tue Jan 24 2012 Justin M. Forbes - 2:1.0-3 -- Add support for vPMU -- e1000: bounds packet size against buffer size CVE-2012-0029 - -* Fri Jan 13 2012 Justin M. Forbes - 2:1.0-2 -- Add patches for USB redirect bits -- Remove palcode-clipper, we don't build it - -* Wed Jan 11 2012 Justin M. Forbes - 2:1.0-1 -- Add patches from 1.0.1 queue - -* Fri Dec 16 2011 Justin M. Forbes - 2:1.0-1 -- Update to qemu 1.0 - -* Tue Nov 15 2011 Justin M. Forbes - 2:0.15.1-3 -- Enable spice for i686 users as well - -* Thu Nov 03 2011 Justin M. Forbes - 2:0.15.1-2 -- Fix POSTIN scriplet failure (#748281) - -* Fri Oct 21 2011 Justin M. Forbes - 2:0.15.1-1 -- Require seabios-bin >= 0.6.0-2 (#741992) -- Replace init scripts with systemd units (#741920) -- Update to 0.15.1 stable upstream - -* Fri Oct 21 2011 Paul Moore -- Enable full relro and PIE (rhbz #738812) - -* Wed Oct 12 2011 Daniel P. Berrange - 2:0.15.0-6 -- Add BR on ceph-devel to enable RBD block device - -* Wed Oct 5 2011 Daniel P. Berrange - 2:0.15.0-5 -- Create a qemu-guest-agent sub-RPM for guest installation - -* Tue Sep 13 2011 Daniel P. Berrange - 2:0.15.0-4 -- Enable DTrace tracing backend for SystemTAP (rhbz #737763) -- Enable build with curl (rhbz #737006) - -* Thu Aug 18 2011 Hans de Goede - 2:0.15.0-3 -- Add missing BuildRequires: usbredir-devel, so that the usbredir code - actually gets build - -* Thu Aug 18 2011 Richard W.M. Jones - 2:0.15.0-2 -- Add upstream qemu patch 'Allow to leave type on default in -machine' - (2645c6dcaf6ea2a51a3b6dfa407dd203004e4d11). - -* Sun Aug 14 2011 Justin M. Forbes - 2:0.15.0-1 -- Update to 0.15.0 stable release. - -* Thu Aug 04 2011 Justin M. Forbes - 2:0.15.0-0.3.201108040af4922 -- Update to 0.15.0-rc1 as we prepare for 0.15.0 release - -* Thu Aug 4 2011 Daniel P. Berrange - 2:0.15.0-0.3.2011072859fadcc -- Fix default accelerator for non-KVM builds (rhbz #724814) - -* Thu Jul 28 2011 Justin M. Forbes - 2:0.15.0-0.1.2011072859fadcc -- Update to 0.15.0-rc0 as we prepare for 0.15.0 release - -* Tue Jul 19 2011 Hans de Goede - 2:0.15.0-0.2.20110718525e3df -- Add support usb redirection over the network, see: - http://fedoraproject.org/wiki/Features/UsbNetworkRedirection -- Restore chardev flow control patches - -* Mon Jul 18 2011 Justin M. Forbes - 2:0.15.0-0.1.20110718525e3df -- Update to git snapshot as we prepare for 0.15.0 release - -* Wed Jun 22 2011 Richard W.M. Jones - 2:0.14.0-9 -- Add BR libattr-devel. This caused the -fstype option to be disabled. - https://www.redhat.com/archives/libvir-list/2011-June/thread.html#01017 - -* Mon May 2 2011 Hans de Goede - 2:0.14.0-8 -- Fix a bug in the spice flow control patches which breaks the tcp chardev - -* Tue Mar 29 2011 Justin M. Forbes - 2:0.14.0-7 -- Disable qemu-ppc and qemu-sparc packages (#679179) - -* Mon Mar 28 2011 Justin M. Forbes - 2:0.14.0-6 -- Spice fixes for flow control. - -* Tue Mar 22 2011 Dan Horák - 2:0.14.0-5 -- be more careful when removing the -g flag on s390 - -* Fri Mar 18 2011 Justin M. Forbes - 2:0.14.0-4 -- Fix thinko on adding the most recent patches. - -* Wed Mar 16 2011 Justin M. Forbes - 2:0.14.0-3 -- Fix migration issue with vhost -- Fix qxl locking issues for spice - -* Wed Mar 02 2011 Justin M. Forbes - 2:0.14.0-2 -- Re-enable sparc and cris builds - -* Thu Feb 24 2011 Justin M. Forbes - 2:0.14.0-1 -- Update to 0.14.0 release - -* Fri Feb 11 2011 Justin M. Forbes - 2:0.14.0-0.1.20110210git7aa8c46 -- Update git snapshot -- Temporarily disable qemu-cris and qemu-sparc due to build errors (to be resolved shorly) - -* Tue Feb 08 2011 Justin M. Forbes - 2:0.14.0-0.1.20110208git3593e6b -- Update to 0.14.0 rc git snapshot -- Add virtio-net to modules - -* Wed Nov 3 2010 Daniel P. Berrange - 2:0.13.0-2 -- Revert previous change -- Make qemu-common own the /etc/qemu directory -- Add /etc/qemu/target-x86_64.conf to qemu-system-x86 regardless - of host architecture. - -* Wed Nov 03 2010 Dan Horák - 2:0.13.0-2 -- Remove kvm config file on non-x86 arches (part of #639471) -- Own the /etc/qemu directory - -* Mon Oct 18 2010 Justin M. Forbes - 2:0.13.0-1 -- Update to 0.13.0 upstream release -- Fixes for vhost -- Fix mouse in certain guests (#636887) -- Fix issues with WinXP guest install (#579348) -- Resolve build issues with S390 (#639471) -- Fix Windows XP on Raw Devices (#631591) - -* Tue Oct 05 2010 jkeating - 2:0.13.0-0.7.rc1.1 -- Rebuilt for gcc bug 634757 - -* Tue Sep 21 2010 Justin M. Forbes - 2:0.13.0-0.7.rc1 -- Flip qxl pci id from unstable to stable (#634535) -- KSM Fixes from upstream (#558281) - -* Tue Sep 14 2010 Justin M. Forbes - 2:0.13.0-0.6.rc1 -- Move away from git snapshots as 0.13 is close to release -- Updates for spice 0.6 - -* Tue Aug 10 2010 Justin M. Forbes - 2:0.13.0-0.5.20100809git25fdf4a -- Fix typo in e1000 gpxe rom requires. -- Add links to newer vgabios - -* Tue Aug 10 2010 Justin M. Forbes - 2:0.13.0-0.4.20100809git25fdf4a -- Disable spice on 32bit, it is not supported and buildreqs don't exist. - -* Mon Aug 9 2010 Justin M. Forbes - 2:0.13.0-0.3.20100809git25fdf4a -- Updates from upstream towards 0.13 stable -- Fix requires on gpxe -- enable spice now that buildreqs are in the repository. -- ksmtrace has moved to a separate upstream package - -* Tue Jul 27 2010 Justin M. Forbes - 2:0.13.0-0.2.20100727gitb81fe95 -- add texinfo buildreq for manpages. - -* Tue Jul 27 2010 Justin M. Forbes - 2:0.13.0-0.1.20100727gitb81fe95 -- Update to 0.13.0 upstream snapshot -- ksm init fixes from upstream - -* Tue Jul 20 2010 Dan Horák - 2:0.12.3-8 -- Add avoid-llseek patch from upstream needed for building on s390(x) -- Don't use parallel make on s390(x) - -* Tue Jun 22 2010 Amit Shah - 2:0.12.3-7 -- Add vvfat hardening patch from upstream (#605202) - -* Fri Apr 23 2010 Justin M. Forbes - 2:0.12.3-6 -- Change requires to the noarch seabios-bin -- Add ownership of docdir to qemu-common (#572110) -- Fix "Cannot boot from non-existent NIC" error when using virt-install (#577851) - -* Thu Apr 15 2010 Justin M. Forbes - 2:0.12.3-5 -- Update virtio console patches from upstream - -* Thu Mar 11 2010 Justin M. Forbes - 2:0.12.3-4 -- Detect cdrom via ioctl (#473154) -- re add increased buffer for USB control requests (#546483) - -* Wed Mar 10 2010 Justin M. Forbes - 2:0.12.3-3 -- Migration clear the fd in error cases (#518032) - -* Tue Mar 09 2010 Justin M. Forbes - 2:0.12.3-2 -- Allow builds --with x86only -- Add libaio-devel buildreq for aio support - -* Fri Feb 26 2010 Justin M. Forbes - 2:0.12.3-1 -- Update to 0.12.3 upstream -- vhost-net migration/restart fixes -- Add F-13 machine type -- virtio-serial fixes - -* Tue Feb 09 2010 Justin M. Forbes - 2:0.12.2-6 -- Add vhost net support. - -* Thu Feb 04 2010 Justin M. Forbes - 2:0.12.2-5 -- Avoid creating too large iovecs in multiwrite merge (#559717) -- Don't try to set max_kernel_pages during ksm init on newer kernels (#558281) -- Add logfile options for ksmtuned debug. - -* Wed Jan 27 2010 Amit Shah - 2:0.12.2-4 -- Remove build dependency on iasl now that we have seabios - -* Wed Jan 27 2010 Amit Shah - 2:0.12.2-3 -- Remove source target for 0.12.1.2 - -* Wed Jan 27 2010 Amit Shah - 2:0.12.2-2 -- Add virtio-console patches from upstream for the F13 VirtioSerial feature - -* Mon Jan 25 2010 Justin M. Forbes - 2:0.12.2-1 -- Update to 0.12.2 upstream - -* Sun Jan 10 2010 Justin M. Forbes - 2:0.12.1.2-3 -- Point to seabios instead of bochs, and add a requires for seabios - -* Mon Jan 4 2010 Justin M. Forbes - 2:0.12.1.2-2 -- Remove qcow2 virtio backing file patch - -* Mon Jan 4 2010 Justin M. Forbes - 2:0.12.1.2-1 -- Update to 0.12.1.2 upstream -- Remove patches included in upstream - -* Fri Nov 20 2009 Mark McLoughlin - 2:0.11.0-12 -- Fix a use-after-free crasher in the slirp code (#539583) -- Fix overflow in the parallels image format support (#533573) - -* Wed Nov 4 2009 Mark McLoughlin - 2:0.11.0-11 -- Temporarily disable preadv/pwritev support to fix data corruption (#526549) - -* Tue Nov 3 2009 Justin M. Forbes - 2:0.11.0-10 -- Default ksm and ksmtuned services on. - -* Thu Oct 29 2009 Mark McLoughlin - 2:0.11.0-9 -- Fix dropped packets with non-virtio NICs (#531419) - -* Wed Oct 21 2009 Glauber Costa - 2:0.11.0-8 -- Properly save kvm time registers (#524229) - -* Mon Oct 19 2009 Mark McLoughlin - 2:0.11.0-7 -- Fix potential segfault from too small MSR_COUNT (#528901) - -* Fri Oct 9 2009 Mark McLoughlin - 2:0.11.0-6 -- Fix fs errors with virtio and qcow2 backing file (#524734) -- Fix ksm initscript errors on kernel missing ksm (#527653) -- Add missing Requires(post): getent, useradd, groupadd (#527087) - -* Tue Oct 6 2009 Mark McLoughlin - 2:0.11.0-5 -- Add 'retune' verb to ksmtuned init script - -* Mon Oct 5 2009 Mark McLoughlin - 2:0.11.0-4 -- Use rtl8029 PXE rom for ne2k_pci, not ne (#526777) -- Also, replace the gpxe-roms-qemu pkg requires with file-based requires - -* Thu Oct 1 2009 Justin M. Forbes - 2:0.11.0-3 -- Improve error reporting on file access (#524695) - -* Mon Sep 28 2009 Mark McLoughlin - 2:0.11.0-2 -- Fix pci hotplug to not exit if supplied an invalid NIC model (#524022) - -* Mon Sep 28 2009 Mark McLoughlin - 2:0.11.0-1 -- Update to 0.11.0 release -- Drop a couple of upstreamed patches - -* Wed Sep 23 2009 Mark McLoughlin - 2:0.10.92-5 -- Fix issue causing NIC hotplug confusion when no model is specified (#524022) - -* Wed Sep 16 2009 Mark McLoughlin - 2:0.10.92-4 -- Fix for KSM patch from Justin Forbes - -* Wed Sep 16 2009 Mark McLoughlin - 2:0.10.92-3 -- Add ksmtuned, also from Dan Kenigsberg -- Use %%_initddir macro - -* Wed Sep 16 2009 Mark McLoughlin - 2:0.10.92-2 -- Add ksm control script from Dan Kenigsberg - -* Mon Sep 7 2009 Mark McLoughlin - 2:0.10.92-1 -- Update to qemu-kvm-0.11.0-rc2 -- Drop upstreamed patches -- extboot install now fixed upstream -- Re-place TCG init fix (#516543) with the one gone upstream - -* Mon Sep 7 2009 Mark McLoughlin - 2:0.10.91-0.10.rc1 -- Fix MSI-X error handling on older kernels (#519787) - -* Fri Sep 4 2009 Mark McLoughlin - 2:0.10.91-0.9.rc1 -- Make pulseaudio the default audio backend (#519540, #495964, #496627) - -* Thu Aug 20 2009 Richard W.M. Jones - 2:0.10.91-0.8.rc1 -- Fix segfault when qemu-kvm is invoked inside a VM (#516543) - -* Tue Aug 18 2009 Mark McLoughlin - 2:0.10.91-0.7.rc1 -- Fix permissions on udev rules (#517571) - -* Mon Aug 17 2009 Lubomir Rintel - 2:0.10.91-0.6.rc1 -- Allow blacklisting of kvm modules (#517866) - -* Fri Aug 7 2009 Mark McLoughlin - 2:0.10.91-0.5.rc1 -- Fix virtio_net with -net user (#516022) - -* Tue Aug 4 2009 Mark McLoughlin - 2:0.10.91-0.4.rc1 -- Update to qemu-kvm-0.11-rc1; no changes from rc1-rc0 - -* Tue Aug 4 2009 Mark McLoughlin - 2:0.10.91-0.3.rc1.rc0 -- Fix extboot checksum (bug #514899) - -* Fri Jul 31 2009 Mark McLoughlin - 2:0.10.91-0.2.rc1.rc0 -- Add KSM support -- Require bochs-bios >= 2.3.8-0.8 for latest kvm bios updates - -* Thu Jul 30 2009 Mark McLoughlin - 2:0.10.91-0.1.rc1.rc0 -- Update to qemu-kvm-0.11.0-rc1-rc0 -- This is a pre-release of the official -rc1 -- A vista installer regression is blocking the official -rc1 release -- Drop qemu-prefer-sysfs-for-usb-host-devices.patch -- Drop qemu-fix-build-for-esd-audio.patch -- Drop qemu-slirp-Fix-guestfwd-for-incoming-data.patch -- Add patch to ensure extboot.bin is installed - -* Sun Jul 26 2009 Fedora Release Engineering - 2:0.10.50-14.kvm88 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Thu Jul 23 2009 Glauber Costa - 2:0.10.50-13.kvm88 -- Fix bug 513249, -net channel option is broken - -* Thu Jul 16 2009 Daniel P. Berrange - 2:0.10.50-12.kvm88 -- Add 'qemu' user and group accounts -- Force disable xen until it can be made to build - -* Thu Jul 16 2009 Mark McLoughlin - 2:0.10.50-11.kvm88 -- Update to kvm-88, see http://www.linux-kvm.org/page/ChangeLog -- Package mutiboot.bin -- Update for how extboot is built -- Fix sf.net source URL -- Drop qemu-fix-ppc-softmmu-kvm-disabled-build.patch -- Drop qemu-fix-pcspk-build-with-kvm-disabled.patch -- Cherry-pick fix for esound support build failure - -* Wed Jul 15 2009 Daniel Berrange - 2:0.10.50-10.kvm87 -- Add udev rules to make /dev/kvm world accessible & group=kvm (rhbz #497341) -- Create a kvm group if it doesn't exist (rhbz #346151) - -* Tue Jul 07 2009 Glauber Costa - 2:0.10.50-9.kvm87 -- use pxe roms from gpxe, instead of etherboot package. - -* Fri Jul 3 2009 Mark McLoughlin - 2:0.10.50-8.kvm87 -- Prefer sysfs over usbfs for usb passthrough (#508326) - -* Sat Jun 27 2009 Mark McLoughlin - 2:0.10.50-7.kvm87 -- Update to kvm-87 -- Drop upstreamed patches -- Cherry-pick new ppc build fix from upstream -- Work around broken linux-user build on ppc -- Fix hw/pcspk.c build with --disable-kvm -- Re-enable preadv()/pwritev() since #497429 is long since fixed -- Kill petalogix-s3adsp1800.dtb, since we don't ship the microblaze target - -* Fri Jun 5 2009 Mark McLoughlin - 2:0.10.50-6.kvm86 -- Fix 'kernel requires an x86-64 CPU' error -- BuildRequires ncurses-devel to enable '-curses' option (#504226) - -* Wed Jun 3 2009 Mark McLoughlin - 2:0.10.50-5.kvm86 -- Prevent locked cdrom eject - fixes hang at end of anaconda installs (#501412) -- Avoid harmless 'unhandled wrmsr' warnings (#499712) - -* Thu May 21 2009 Mark McLoughlin - 2:0.10.50-4.kvm86 -- Update to kvm-86 release -- ChangeLog here: http://marc.info/?l=kvm&m=124282885729710 - -* Fri May 1 2009 Mark McLoughlin - 2:0.10.50-3.kvm85 -- Really provide qemu-kvm as a metapackage for comps - -* Tue Apr 28 2009 Mark McLoughlin - 2:0.10.50-2.kvm85 -- Provide qemu-kvm as a metapackage for comps - -* Mon Apr 27 2009 Mark McLoughlin - 2:0.10.50-1.kvm85 -- Update to qemu-kvm-devel-85 -- kvm-85 is based on qemu development branch, currently version 0.10.50 -- Include new qemu-io utility in qemu-img package -- Re-instate -help string for boot=on to fix virtio booting with libvirt -- Drop upstreamed patches -- Fix missing kernel/include/asm symlink in upstream tarball -- Fix target-arm build -- Fix build on ppc -- Disable preadv()/pwritev() until bug #497429 is fixed -- Kill more .kernelrelease uselessness -- Make non-kvm qemu build verbose - -* Fri Apr 24 2009 Mark McLoughlin - 2:0.10-15 -- Fix source numbering typos caused by make-release addition - -* Thu Apr 23 2009 Mark McLoughlin - 2:0.10-14 -- Improve instructions for generating the tarball - -* Tue Apr 21 2009 Mark McLoughlin - 2:0.10-13 -- Enable pulseaudio driver to fix qemu lockup at shutdown (#495964) - -* Tue Apr 21 2009 Mark McLoughlin - 2:0.10-12 -- Another qcow2 image corruption fix (#496642) - -* Mon Apr 20 2009 Mark McLoughlin - 2:0.10-11 -- Fix qcow2 image corruption (#496642) - -* Sun Apr 19 2009 Mark McLoughlin - 2:0.10-10 -- Run sysconfig.modules from %%post on x86_64 too (#494739) - -* Sun Apr 19 2009 Mark McLoughlin - 2:0.10-9 -- Align VGA ROM to 4k boundary - fixes 'qemu-kvm -std vga' (#494376) - -* Tue Apr 14 2009 Glauber Costa - 2:0.10-8 -- Provide qemu-kvm conditional on the architecture. - -* Thu Apr 9 2009 Mark McLoughlin - 2:0.10-7 -- Add a much cleaner fix for vga segfault (#494002) - -* Sun Apr 5 2009 Glauber Costa - 2:0.10-6 -- Fixed qcow2 segfault creating disks over 2TB. #491943 - -* Fri Apr 3 2009 Mark McLoughlin - 2:0.10-5 -- Fix vga segfault under kvm-autotest (#494002) -- Kill kernelrelease hack; it's not needed -- Build with "make V=1" for more verbose logs - -* Thu Apr 02 2009 Glauber Costa - 2:0.10-4 -- Support botting gpxe roms. - -* Wed Apr 01 2009 Glauber Costa - 2:0.10-2 -- added missing patch. love for CVS. - -* Wed Apr 01 2009 Glauber Costa - 2:0.10-1 -- Include debuginfo for qemu-img -- Do not require qemu-common for qemu-img -- Explicitly own each of the firmware files -- remove firmwares for ppc and sparc. They should be provided by an external package. - Not that the packages exists for sparc in the secondary arch repo as noarch, but they - don't automatically get into main repos. Unfortunately it's the best we can do right - now. -- rollback a bit in time. Snapshot from avi's maint/2.6.30 - - this requires the sasl patches to come back. - - with-patched-kernel comes back. - -* Wed Mar 25 2009 Mark McLoughlin - 2:0.10-0.12.kvm20090323git -- BuildRequires pciutils-devel for device assignment (#492076) - -* Mon Mar 23 2009 Glauber Costa - 2:0.10-0.11.kvm20090323git -- Update to snapshot kvm20090323. -- Removed patch2 (upstream). -- use upstream's new split package. -- --with-patched-kernel flag not needed anymore -- Tell how to get the sources. - -* Wed Mar 18 2009 Glauber Costa - 2:0.10-0.10.kvm20090310git -- Added extboot to files list. - -* Wed Mar 11 2009 Glauber Costa - 2:0.10-0.9.kvm20090310git -- Fix wrong reference to bochs bios. - -* Wed Mar 11 2009 Glauber Costa - 2:0.10-0.8.kvm20090310git -- fix Obsolete/Provides pair -- Use kvm bios from bochs-bios package. -- Using RPM_OPT_FLAGS in configure -- Picked back audio-drv-list from kvm package - -* Tue Mar 10 2009 Glauber Costa - 2:0.10-0.7.kvm20090310git -- modify ppc patch - -* Tue Mar 10 2009 Glauber Costa - 2:0.10-0.6.kvm20090310git -- updated to kvm20090310git -- removed sasl patches (already in this release) - -* Tue Mar 10 2009 Glauber Costa - 2:0.10-0.5.kvm20090303git -- kvm.modules were being wrongly mentioned at %%install. -- update description for the x86 system package to include kvm support -- build kvm's own bios. It is still necessary while kvm uses a slightly different - irq routing mechanism - -* Thu Mar 05 2009 Glauber Costa - 2:0.10-0.4.kvm20090303git -- seems Epoch does not go into the tags. So start back here. - -* Thu Mar 05 2009 Glauber Costa - 2:0.10-0.1.kvm20090303git -- Use bochs-bios instead of bochs-bios-data -- It's official: upstream set on 0.10 - -* Thu Mar 5 2009 Daniel P. Berrange - 2:0.9.2-0.2.kvm20090303git -- Added BSD to license list, since many files are covered by BSD - -* Wed Mar 04 2009 Glauber Costa - 0.9.2-0.1.kvm20090303git -- missing a dot. shame on me - -* Wed Mar 04 2009 Glauber Costa - 0.92-0.1.kvm20090303git -- Set Epoch to 2 -- Set version to 0.92. It seems upstream keep changing minds here, so pick the lowest -- Provides KVM, Obsoletes KVM -- Only install qemu-kvm in ix86 and x86_64 -- Remove pkgdesc macros, as they were generating bogus output for rpm -qi. -- fix ppc and ppc64 builds - -* Tue Mar 03 2009 Glauber Costa - 0.10-0.3.kvm20090303git -- only execute post scripts for user package. -- added kvm tools. - -* Tue Mar 03 2009 Glauber Costa - 0.10-0.2.kvm20090303git -- put kvm.modules into cvs - -* Tue Mar 03 2009 Glauber Costa - 0.10-0.1.kvm20090303git -- Set Epoch to 1 -- Build KVM (basic build, no tools yet) -- Set ppc in ExcludeArch. This is temporary, just to fix one issue at a time. - ppc users (IBM ? ;-)) please wait a little bit. - -* Tue Mar 3 2009 Daniel P. Berrange - 1.0-0.5.svn6666 -- Support VNC SASL authentication protocol -- Fix dep on bochs-bios-data - -* Tue Mar 03 2009 Glauber Costa - 1.0-0.4.svn6666 -- use bios from bochs-bios package. - -* Tue Mar 03 2009 Glauber Costa - 1.0-0.3.svn6666 -- use vgabios from vgabios package. - -* Mon Mar 02 2009 Glauber Costa - 1.0-0.2.svn6666 -- use pxe roms from etherboot package. - -* Mon Mar 02 2009 Glauber Costa - 1.0-0.1.svn6666 -- Updated to tip svn (release 6666). Featuring split packages for qemu. - Unfortunately, still using binary blobs for the bioses. - -* Wed Feb 25 2009 Fedora Release Engineering - 0.9.1-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Sun Jan 11 2009 Debarshi Ray - 0.9.1-12 -- Updated build patch. Closes Red Hat Bugzilla bug #465041. - -* Wed Dec 31 2008 Dennis Gilmore - 0.9.1-11 -- add sparcv9 and sparc64 support - -* Fri Jul 25 2008 Bill Nottingham -- Fix qemu-img summary (#456344) - -* Wed Jun 25 2008 Daniel P. Berrange - 0.9.1-10.fc10 -- Rebuild for GNU TLS ABI change - -* Wed Jun 11 2008 Daniel P. Berrange - 0.9.1-9.fc10 -- Remove bogus wildcard from files list (rhbz #450701) - -* Sat May 17 2008 Lubomir Rintel - 0.9.1-8 -- Register binary handlers also for shared libraries - -* Mon May 5 2008 Daniel P. Berrange - 0.9.1-7.fc10 -- Fix text console PTYs to be in rawmode - -* Sun Apr 27 2008 Lubomir Kundrak - 0.9.1-6 -- Register binary handler for SuperH-4 CPU - -* Wed Mar 19 2008 Daniel P. Berrange - 0.9.1-5.fc9 -- Split qemu-img tool into sub-package for smaller footprint installs - -* Wed Feb 27 2008 Daniel P. Berrange - 0.9.1-4.fc9 -- Fix block device checks for extendable disk formats (rhbz #435139) - -* Sat Feb 23 2008 Daniel P. Berrange - 0.9.1-3.fc9 -- Fix block device extents check (rhbz #433560) - -* Mon Feb 18 2008 Fedora Release Engineering - 0.9.1-2 -- Autorebuild for GCC 4.3 - -* Tue Jan 8 2008 Daniel P. Berrange - 0.9.1-1.fc9 -- Updated to 0.9.1 release -- Fix license tag syntax -- Don't mark init script as a config file - -* Wed Sep 26 2007 Daniel P. Berrange - 0.9.0-5.fc8 -- Fix rtl8139 checksum calculation for Vista (rhbz #308201) - -* Tue Aug 28 2007 Daniel P. Berrange - 0.9.0-4.fc8 -- Fix debuginfo by passing -Wl,--build-id to linker - -* Tue Aug 28 2007 David Woodhouse 0.9.0-4 -- Update licence -- Fix CDROM emulation (#253542) - -* Tue Aug 28 2007 Daniel P. Berrange - 0.9.0-3.fc8 -- Added backport of VNC password auth, and TLS+x509 cert auth -- Switch to rtl8139 NIC by default for linkstate reporting -- Fix rtl8139 mmio region mappings with multiple NICs - -* Sun Apr 1 2007 Hans de Goede 0.9.0-2 -- Fix direct loading of a linux kernel with -kernel & -initrd (bz 234681) -- Remove spurious execute bits from manpages (bz 222573) - -* Tue Feb 6 2007 David Woodhouse 0.9.0-1 -- Update to 0.9.0 - -* Wed Jan 31 2007 David Woodhouse 0.8.2-5 -- Include licences - -* Mon Nov 13 2006 Hans de Goede 0.8.2-4 -- Backport patch to make FC6 guests work by Kevin Kofler - (bz 207843). - -* Mon Sep 11 2006 David Woodhouse 0.8.2-3 -- Rebuild - -* Thu Aug 24 2006 Matthias Saou 0.8.2-2 -- Remove the target-list iteration for x86_64 since they all build again. -- Make gcc32 vs. gcc34 conditional on %%{fedora} to share the same spec for - FC5 and FC6. - -* Wed Aug 23 2006 Matthias Saou 0.8.2-1 -- Update to 0.8.2 (#200065). -- Drop upstreamed syscall-macros patch2. -- Put correct scriplet dependencies. -- Force install mode for the init script to avoid umask problems. -- Add %%postun condrestart for changes to the init script to be applied if any. -- Update description with the latest "about" from the web page (more current). -- Update URL to qemu.org one like the Source. -- Add which build requirement. -- Don't include texi files in %%doc since we ship them in html. -- Switch to using gcc34 on devel, FC5 still has gcc32. -- Add kernheaders patch to fix linux/compiler.h inclusion. -- Add target-sparc patch to fix compiling on ppc (some int32 to float). - -* Thu Jun 8 2006 David Woodhouse 0.8.1-3 -- More header abuse in modify_ldt(), change BuildRoot: - -* Wed Jun 7 2006 David Woodhouse 0.8.1-2 -- Fix up kernel header abuse - -* Tue May 30 2006 David Woodhouse 0.8.1-1 -- Update to 0.8.1 - -* Sat Mar 18 2006 David Woodhouse 0.8.0-6 -- Update linker script for PPC - -* Sat Mar 18 2006 David Woodhouse 0.8.0-5 -- Just drop $RPM_OPT_FLAGS. They're too much of a PITA - -* Sat Mar 18 2006 David Woodhouse 0.8.0-4 -- Disable stack-protector options which gcc 3.2 doesn't like - -* Fri Mar 17 2006 David Woodhouse 0.8.0-3 -- Use -mcpu= instead of -mtune= on x86_64 too -- Disable SPARC targets on x86_64, because dyngen doesn't like fnegs - -* Fri Mar 17 2006 David Woodhouse 0.8.0-2 -- Don't use -mtune=pentium4 on i386. GCC 3.2 doesn't like it - -* Fri Mar 17 2006 David Woodhouse 0.8.0-1 -- Update to 0.8.0 -- Resort to using compat-gcc-32 -- Enable ALSA - -* Mon May 16 2005 David Woodhouse 0.7.0-2 -- Proper fix for GCC 4 putting 'blr' or 'ret' in the middle of the function, - for i386, x86_64 and PPC. - -* Sat Apr 30 2005 David Woodhouse 0.7.0-1 -- Update to 0.7.0 -- Fix dyngen for PPC functions which end in unconditional branch - -* Thu Apr 7 2005 Michael Schwendt -- rebuilt - -* Sun Feb 13 2005 David Woodhouse 0.6.1-2 -- Package cleanup - -* Sun Nov 21 2004 David Woodhouse 0.6.1-1 -- Update to 0.6.1 - -* Tue Jul 20 2004 David Woodhouse 0.6.0-2 -- Compile fix from qemu CVS, add x86_64 host support - -* Wed May 12 2004 David Woodhouse 0.6.0-1 -- Update to 0.6.0. - -* Sat May 8 2004 David Woodhouse 0.5.5-1 -- Update to 0.5.5. - -* Sun May 2 2004 David Woodhouse 0.5.4-1 -- Update to 0.5.4. - -* Thu Apr 22 2004 David Woodhouse 0.5.3-1 -- Update to 0.5.3. Add init script. - -* Thu Jul 17 2003 Jeff Johnson 0.4.3-1 -- Create. diff --git a/virt/qemu/debian/deb_patches/0001-Customize-Debian-build-files-for-STX.patch b/virt/qemu/debian/deb_patches/0001-Customize-Debian-build-files-for-STX.patch deleted file mode 100644 index 188b2ebd1..000000000 --- a/virt/qemu/debian/deb_patches/0001-Customize-Debian-build-files-for-STX.patch +++ /dev/null @@ -1,419 +0,0 @@ -From 33716964e8381628d575160b6a015a3f8ba68640 Mon Sep 17 00:00:00 2001 -From: Thales Elero Cervi -Date: Fri, 18 Nov 2022 16:59:35 -0300 -Subject: [PATCH] Customize Debian build files for STX - -Change the Debian build files to generate qemu Debian packages as -they are needed for StarlingX qemu use case. -Building the upstream qemu was taking ~30 minutes and generating -an output directory with 30 packages and ~1.1G in size. Removing -the unnecessary packages resulted in a build that takes ~15min and -in an output directory with only 10 needed packages and ~320M. - -We mainly remove UI/Graphical modules and focus on building -qemu-system-x86 only. We do not need other qemu-system-* packages -for different architectures neither the build dependencies for -cross-compiling those packages. - -Removed packages: -* qemu-system-gui -* qemu-system-[misc|arm|mips|ppc|sparc] -* qemu-user -* qemu-user-static -* qemu-user-binftmt - -Signed-off-by: Thales Elero Cervi ---- - debian/control | 215 +++---------------------------------------------- - debian/rules | 80 +----------------- - 2 files changed, 14 insertions(+), 281 deletions(-) - -diff --git a/debian/control b/debian/control -index 6534765..7cc0fb4 100644 ---- a/debian/control -+++ b/debian/control -@@ -21,14 +21,10 @@ Build-Depends: debhelper-compat (= 12), - libcapstone-dev (>> 4.0.2~), - # --enable-linux-aio linux-* - libaio-dev [linux-any], --# --audio-drv-list=pa,alsa,oss linux-* --# --audio-drv-list=pa,oss kfreebsd-* -- libpulse-dev, -- libasound2-dev [linux-any], - # for virtfs (now in libc6) - # --enable-attr --# --enable-brlapi -- libbrlapi-dev, -+# --disable-brlapi -+# libbrlapi-dev, - # --enable-virtfs linux-* - # needed for virtfs - # --enable-cap-ng linux-* -@@ -85,8 +81,8 @@ Build-Depends: debhelper-compat (= 12), - # vde is debian-only since ubuntu/vde2 is in universe - # --enable-vde - libvdeplug-dev, --# --enable-xen linux-amd64|linux-i386 -- libxen-dev [linux-amd64 linux-i386], -+# --disable-xen linux-amd64|linux-i386 -+# libxen-dev [linux-amd64 linux-i386], - # --enable-nettle - nettle-dev, - ## always enabled: --enable-uuid -@@ -114,18 +110,18 @@ Build-Depends: debhelper-compat (= 12), - ## auth-pam - for auth for vnc&Co using PAM - ## gio-2.0 - for -display=spice-app - Build-Depends-Indep: -- gcc-s390x-linux-gnu, -+# gcc-s390x-linux-gnu, - # libc6.1-dev-alpha-cross isn't really needed but the code, - # for whatever reason, #include's string.h which needs libc6.1-dev - gcc-alpha-linux-gnu, libc6.1-dev-alpha-cross, - # skiboot firmware, openbios -- gcc-powerpc64-linux-gnu, -+# gcc-powerpc64-linux-gnu, - # openbios -- gcc-sparc64-linux-gnu, fcode-utils, xsltproc, -+# gcc-sparc64-linux-gnu, fcode-utils, xsltproc, - # hppa-firmware -- gcc-hppa-linux-gnu, -+# gcc-hppa-linux-gnu, - # opensbi -- gcc-riscv64-linux-gnu, -+# gcc-riscv64-linux-gnu, - Build-Conflicts: oss4-dev - Standards-Version: 4.5.1 - Homepage: http://www.qemu.org/ -@@ -218,141 +214,12 @@ Description: QEMU full system emulation binaries (common files) - This package provides common files needed for target-specific - full system emulation (qemu-system-*) packages. - --Package: qemu-system-gui --Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32 --Multi-Arch: same --Depends: ${misc:Depends}, ${shlibs:Depends}, -- qemu-system-x86 (= ${binary:Version}) | qemu-system-arm (= ${binary:Version}) | qemu-system-mips (= ${binary:Version}) | qemu-system-ppc (= ${binary:Version}) | qemu-system-sparc (= ${binary:Version}) | qemu-system-misc (= ${binary:Version}) | qemu-system-s390x (= ${binary:Version}) | qemu-system-x86-xen (= ${binary:Version}), --Description: QEMU full system emulation binaries (user interface and audio support) -- This package provides local graphical user interface (currently GTK) -- and audio backends for full system emulation (qemu-system-*) packages. -- --Package: qemu-system-misc --Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32 --Multi-Arch: foreign --Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (>> ${source:Version}~), qemu-system-data (>> ${source:Version}~), --Recommends: qemu-system-gui (= ${binary:Version}), qemu-utils, --# alpha uses vgabios --# alpha m68k sh4 uses bootroms -- seabios, ipxe-qemu (>= 1.0.0+git-20131111.c3d1e78-1~) --Suggests: samba, vde2, qemu-block-extra (= ${binary:Version}), --Provides: ${sysprovides:misc} --Description: QEMU full system emulation binaries (miscellaneous) -- QEMU is a fast processor emulator: currently the package supports -- ARM, CRIS, M68k (ColdFire), MicroBlaze, and SH4 -- emulation. By using dynamic translation it achieves -- reasonable speed while being easy to port on new host CPUs. -- . -- This package provides the full system emulation binaries to emulate -- various other hardware which did not made into separate packages. -- Emulators for the following architectures are provided: -- ${sysarch:misc}. -- . -- In system emulation mode QEMU emulates a full system, including a processor -- and various peripherals. It enables easier testing and debugging of system -- code. It can also be used to provide virtual hosting of several virtual -- machines on a single server. -- --Package: qemu-system-arm --Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32 --Multi-Arch: foreign --Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (>> ${source:Version}~), qemu-system-data (>> ${source:Version}~), --Recommends: qemu-system-gui (= ${binary:Version}), qemu-utils, --# aarch64 arm uses bootroms -- ipxe-qemu (>= 1.0.0+git-20131111.c3d1e78-1~), -- qemu-efi-aarch64, qemu-efi-arm --Suggests: samba, vde2, qemu-block-extra (= ${binary:Version}), --Provides: qemu-kvm [linux-arm64 linux-armhf linux-armel], ${sysprovides:arm} --Breaks: qemu-kvm [linux-arm64 linux-armhf linux-armel] --Replaces: qemu-kvm [linux-arm64 linux-armhf linux-armel] --Description: QEMU full system emulation binaries (arm) -- QEMU is a fast processor emulator: currently the package supports -- ARM emulation. By using dynamic translation it achieves -- reasonable speed while being easy to port on new host CPUs. -- . -- This package provides the full system emulation binaries to emulate -- the following arm hardware: ${sysarch:arm}. -- . -- In system emulation mode QEMU emulates a full system, including a processor -- and various peripherals. It enables easier testing and debugging of system -- code. It can also be used to provide virtual hosting of several virtual -- machines on a single server. -- --Package: qemu-system-mips --Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32 --Multi-Arch: foreign --Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (>> ${source:Version}~), qemu-system-data (>> ${source:Version}~), --Recommends: qemu-system-gui (= ${binary:Version}), qemu-utils, --# all mips targets uses vgabios and bootroms -- seabios, ipxe-qemu (>= 1.0.0+git-20131111.c3d1e78-1~) --Suggests: samba, vde2, qemu-block-extra (= ${binary:Version}), --Provides: ${sysprovides:mips} --Description: QEMU full system emulation binaries (mips) -- QEMU is a fast processor emulator: currently the package supports -- MIPS emulation. By using dynamic translation it achieves -- reasonable speed while being easy to port on new host CPUs. -- . -- This package provides the full system emulation binaries to emulate -- the following mips hardware: ${sysarch:mips}. -- . -- In system emulation mode QEMU emulates a full system, including a processor -- and various peripherals. It enables easier testing and debugging of system -- code. It can also be used to provide virtual hosting of several virtual -- machines on a single server. -- --Package: qemu-system-ppc --Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32 --Multi-Arch: foreign --Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (>> ${source:Version}~), qemu-system-data (>> ${source:Version}~), --Suggests: samba, vde2, qemu-block-extra (= ${binary:Version}), --Recommends: qemu-system-gui (= ${binary:Version}), qemu-utils, --# ppc targets use vgabios-stdvga and bootroms -- seabios, ipxe-qemu (>= 1.0.0+git-20131111.c3d1e78-1~) --Provides: qemu-kvm [linux-ppc64 linux-ppc64el linux-powerpc], ${sysprovides:ppc} --Breaks: qemu-kvm [linux-ppc64 linux-ppc64el linux-powerpc] --Replaces: qemu-kvm [linux-ppc64 linux-ppc64el linux-powerpc] --Description: QEMU full system emulation binaries (ppc) -- QEMU is a fast processor emulator: currently the package supports -- PowerPC emulation. By using dynamic translation it achieves -- reasonable speed while being easy to port on new host CPUs. -- . -- This package provides the full system emulation binaries to emulate -- the following PowerPC hardware: ${sysarch:ppc}. -- . -- In system emulation mode QEMU emulates a full system, including a processor -- and various peripherals. It enables easier testing and debugging of system -- code. It can also be used to provide virtual hosting of several virtual -- machines on a single server. -- --Package: qemu-system-sparc --Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32 --Multi-Arch: foreign --Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (>> ${source:Version}~), qemu-system-data (>> ${source:Version}~), --Recommends: qemu-system-gui (= ${binary:Version}), qemu-utils, --# sparc64 uses vgabios-stdvga and bootroms -- seabios, ipxe-qemu (>= 1.0.0+git-20131111.c3d1e78-1~) --Suggests: samba, vde2, qemu-block-extra (= ${binary:Version}), --Provides: ${sysprovides:sparc} --Description: QEMU full system emulation binaries (sparc) -- QEMU is a fast processor emulator: currently the package supports -- SPARC emulation. By using dynamic translation it achieves -- reasonable speed while being easy to port on new host CPUs. -- . -- This package provides the full system emulation binaries to emulate -- the following sparc hardware: ${sysarch:sparc}. -- . -- In system emulation mode QEMU emulates a full system, including a processor -- and various peripherals. It enables easier testing and debugging of system -- code. It can also be used to provide virtual hosting of several virtual -- machines on a single server. -- - Package: qemu-system-x86 - Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32 - Multi-Arch: foreign - Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (>> ${source:Version}~), qemu-system-data (>> ${source:Version}~), - seabios (>= 1.10.2-1~), ipxe-qemu (>= 1.0.0+git-20131111.c3d1e78-1~) --Recommends: qemu-system-gui (= ${binary:Version}), qemu-utils, -- ovmf, -+Recommends: qemu-utils, ovmf - Suggests: samba, vde2, qemu-block-extra (= ${binary:Version}), - sgabios, - Provides: qemu-kvm [linux-amd64 linux-i386], ${sysprovides:x86} -@@ -374,68 +241,6 @@ Description: QEMU full system emulation binaries (x86) - On x86 host hardware this package also enables KVM kernel virtual machine - usage on systems which supports it. - --Package: qemu-user --Architecture: amd64 arm arm64 armel armhf i386 ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32 --Multi-Arch: foreign --Depends: ${shlibs:Depends}, ${misc:Depends} --Recommends: qemu-user-binfmt --Description: QEMU user mode emulation binaries -- QEMU is a fast processor emulator: currently the package supports -- ARM, CRIS, i386, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, SH4, -- SPARC and x86-64 emulation. By using dynamic translation it achieves -- reasonable speed while being easy to port on new host CPUs. -- . -- This package provides the user mode emulation binaries. In this mode -- QEMU can launch Linux processes compiled for one CPU on another CPU. -- . -- If qemu-user-binfmt package is also installed, it will register binary -- format handlers from this qemu-user package with the kernel so it will -- be possible to run foreign binaries directly. However, this might not -- be suitable for using inside foreign chroots, in which case it is -- possible to use qemu-user-static package instead of qemu-user-binmft, -- -- qemu-user-static will register statically linked binfmt handlers instead. -- --Package: qemu-user-static --Architecture: amd64 arm arm64 armel armhf i386 ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32 --Built-Using: ${built-using} --Multi-Arch: foreign --Depends: ${misc:Depends} --Recommends: binfmt-support --Breaks: binfmt-support (<< 2.1.7~) --Provides: qemu-user-binfmt --Conflicts: qemu-user-binfmt --Suggests: sudo --Description: QEMU user mode emulation binaries (static version) -- QEMU is a fast processor emulator: currently the package supports -- ARM, CRIS, i386, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, SH4, -- SPARC and x86-64 emulation. By using dynamic translation it achieves -- reasonable speed while being easy to port on new host CPUs. -- . -- This package provides the user mode emulation binaries, built -- statically. In this mode QEMU can launch Linux processes compiled for -- one CPU on another CPU. -- . -- qemu-user-static package will register binary formats which the provided -- emulators can handle, so that it will be possible to run foreign binaries -- directly. -- --Package: qemu-user-binfmt --Architecture: amd64 arm arm64 armel armhf i386 ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32 --Multi-Arch: foreign --Depends: ${misc:Depends}, qemu-user (= ${binary:Version}), binfmt-support --Breaks: binfmt-support (<< 2.1.7~) --Conflicts: qemu-user-static --Description: QEMU user mode binfmt registration for qemu-user -- QEMU is a fast processor emulator: currently the package supports -- ARM, CRIS, i386, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, SH4, -- SPARC and x86-64 emulation. By using dynamic translation it achieves -- reasonable speed while being easy to port on new host CPUs. -- . -- This package provides binfmt support registration for the user mode -- emulation binaries from qemu-user. This is an empty package, it does -- not contain any additional files, only registration scripts which run -- at install and remove times. -- - Package: qemu-utils - Architecture: amd64 arm arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32 - Multi-Arch: foreign -diff --git a/debian/rules b/debian/rules -index 9d9f18f..d6778c3 100755 ---- a/debian/rules -+++ b/debian/rules -@@ -72,14 +72,11 @@ endif - ifeq (${enable_system},enable) - - # list of system (softmmu) targets, from ./configure --system_targets = \ -- i386 x86_64 alpha aarch64 arm avr cris hppa m68k microblaze microblazeel \ -- mips mipsel mips64 mips64el moxie nios2 or1k ppc ppc64 riscv32 riscv64 rx \ -- sh4 sh4eb sparc sparc64 s390x tricore xtensa xtensaeb -+system_targets = i386 x86_64 - - # qemu-system subpackages, from d/control - sys_systems = arm mips ppc sparc x86 $(if $(filter ${VENDOR},UBUNTU),s390x,) --systems = ${sys_systems} misc -+systems = x86 - sysarch_arm = $(filter aarch64 arm,${system_targets}) - sysarch_mips = $(filter mips mipsel mips64 mips64el,${system_targets}) - sysarch_ppc = $(filter ppc ppc64,${system_targets}) -@@ -348,9 +345,11 @@ endif # enable_linux_user - - dh_install -a - dh_missing --list-missing -+ifeq ($(enable_linux_user),enable) - dh_installdocs -a -Nqemu-user-binfmt - dh_installchangelogs -a -Nqemu-user-binfmt -XChangelog - dh_installdocs -a -pqemu-user-binfmt --link-doc=qemu-user -+endif - dh_installman -a - dh_installudev -a - ifeq (${enable_system},enable) -@@ -393,35 +392,6 @@ debian/control: debian/control-in debian/rules - chmod -w $@ - endif - --### openbios rules --b/openbios/config-host.mak: -- mkdir -p b/openbios -- cd b/openbios && ../../roms/openbios/config/scripts/switch-arch builtin-ppc builtin-sparc32 builtin-sparc64 --build-openbios: $(addprefix b/openbios/obj-, $(addsuffix /.built, ppc sparc32 sparc64)) --b/openbios/obj-%/.built: b/openbios/config-host.mak -- ${MAKE} -C ${@D} V=${V} EXTRACFLAGS="-ffreestanding -fno-pic -fno-stack-protector" -- @touch $@ --install-openbios: build-openbios -- install -m 0644 b/openbios/obj-ppc/openbios-qemu.elf "${sysdatadir}/openbios-ppc" -- install -m 0644 b/openbios/obj-sparc32/openbios-builtin.elf "${sysdatadir}/openbios-sparc32" -- install -m 0644 b/openbios/obj-sparc64/openbios-builtin.elf "${sysdatadir}/openbios-sparc64" -- install -m 0644 -t "${sysdatadir}" \ -- b/openbios/obj-sparc32/QEMU,tcx.bin \ -- b/openbios/obj-sparc32/QEMU,cgthree.bin \ -- b/openbios/obj-sparc64/QEMU,VGA.bin --sysdata-components += openbios -- --### powernv firmware in roms/skiboot --build-skiboot: b/skiboot/skiboot.lid --b/skiboot/skiboot.lid: -- mkdir -p b/skiboot -- ${MAKE} -C b/skiboot -f ${CURDIR}/roms/skiboot/Makefile \ -- SRC=${CURDIR}/roms/skiboot \ -- CROSS_COMPILE=${PPC64_CROSSPFX} V=${V} --install-skiboot: b/skiboot/skiboot.lid -- install -m 0644 -t "${sysdatadir}" $< --sysdata-components += skiboot -- - ### x86 optionrom - build-x86-optionrom: b/optionrom/built - b/optionrom/built: -@@ -471,48 +441,6 @@ install-palcode-clipper: b/qemu-palcode/palcode-clipper - install -m 0644 $< ${sysdatadir}/palcode-clipper - sysdata-components += palcode-clipper - --### SLOF --build-slof: b/SLOF/boot_rom.bin --b/SLOF/boot_rom.bin: -- cp -al roms/SLOF b/ -- env -u LDFLAGS -u CFLAGS $(MAKE) -C b/SLOF qemu CROSS="powerpc64-linux-gnu-" V=${V} --install-slof: b/SLOF/boot_rom.bin -- install -m 0644 $< ${sysdatadir}/slof.bin --sysdata-components += slof -- --### s390x firmware in pc-bios/s390-ccw --build-s390x-fw: b/s390fw/built --b/s390fw/built: -- mkdir -p b/s390fw -- ${MAKE} -f debian/s390fw.mak OUT=b/s390fw/ -- touch $@ --install-s390x-fw: build-s390x-fw -- install -m 0644 -t "${sysdatadir}" b/s390fw/s390*.img --sysdata-components += s390x-fw -- --### hppa-firmware (roms/seabios-hppa) --build-hppa-fw: b/hppafw/hppa-firmware.img --b/hppafw/hppa-firmware.img: | b -- mkdir -p b/hppafw -- ${MAKE} -C roms/seabios-hppa OUT=../../b/hppafw/ PYTHON=python3 parisc -- hppa-linux-gnu-strip -R.note -R.comment $@ --install-hppa-fw: b/hppafw/hppa-firmware.img -- install -m 0644 $< ${sysdatadir} --sysdata-components += hppa-fw -- --### opensbi (riscv firmware) --# we only build v64 variants, not v32 --build-opensbi: b/opensbi/.built --b/opensbi/.built: | b -- mkdir -p b/opensbi -- ${MAKE} -C roms/opensbi O=../../b/opensbi CROSS_COMPILE=riscv64-linux-gnu- V=${V} PLATFORM=generic -- riscv64-linux-gnu-strip --strip-unneeded -R.comment -R.note b/opensbi/platform/generic/firmware/fw_dynamic.elf -- touch $@ --install-opensbi: build-opensbi -- install -m 0644 b/opensbi/platform/generic/firmware/fw_dynamic.bin ${sysdatadir}/opensbi-riscv64-generic-fw_dynamic.bin -- install -m 0644 b/opensbi/platform/generic/firmware/fw_dynamic.elf ${sysdatadir}/opensbi-riscv64-generic-fw_dynamic.elf --sysdata-components += opensbi -- - build-indep: $(addprefix build-, ${sysdata-components}) - - b/install-indep-prep.stamp: --- -2.25.1 - diff --git a/virt/qemu/debian/deb_patches/series b/virt/qemu/debian/deb_patches/series deleted file mode 100644 index 4290b84d0..000000000 --- a/virt/qemu/debian/deb_patches/series +++ /dev/null @@ -1 +0,0 @@ -0001-Customize-Debian-build-files-for-STX.patch diff --git a/virt/qemu/debian/meta_data.yaml b/virt/qemu/debian/meta_data.yaml deleted file mode 100644 index 7ce527b4e..000000000 --- a/virt/qemu/debian/meta_data.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -debname: qemu -debver: 5.2+dfsg-11+deb11u2 -archive: https://snapshot.debian.org/archive/debian/20221109T211529Z/pool/main/q/qemu/ -revision: - dist: $STX_DIST - GITREVCOUNT: - BASE_SRCREV: 75a234904ff66d8656bcac85c54b93cfc9f058df - SRC_DIR: ${MY_REPO}/stx/integ/virt/qemu diff --git a/virt/qemu/debian/patches/0001-STX-Add-support-statement-to-help-output.patch b/virt/qemu/debian/patches/0001-STX-Add-support-statement-to-help-output.patch deleted file mode 100644 index b48c3ebf3..000000000 --- a/virt/qemu/debian/patches/0001-STX-Add-support-statement-to-help-output.patch +++ /dev/null @@ -1,63 +0,0 @@ -From d8d9a42d7e243f0874f77c0fc932f32ecbde42e6 Mon Sep 17 00:00:00 2001 -From: Eduardo Habkost -Date: Fri, 26 Apr 2019 17:41:04 -0300 -Subject: [PATCH] STX: Add support statement to -help output - -RH-Author: Eduardo Habkost -Message-id: <1386183197-27761-1-git-send-email-ehabkost@redhat.com> -Patchwork-id: 55994 -O-Subject: [qemu-kvm RHEL7 PATCH] Add support statement to -help output -Bugzilla: 972773 -RH-Acked-by: Miroslav Rezanina -RH-Acked-by: knoel@redhat.com -RH-Acked-by: Paolo Bonzini - -Bugzilla: 972773 -Brew scratch build: -http://brewweb.devel.redhat.com/brew/taskinfo?taskID=6676272 - -Add support statement to -help output, reporting direct qemu-kvm usage -as unsupported by Red Hat, and advising users to use libvirt instead. - -Change the above to say StarlingX instead of Red Hat. -STX-Author: Jim Somerville - -Signed-off-by: Eduardo Habkost -Signed-off-by: Jim Somerville -Signed-off-by: Rafael Falcao ---- - softmmu/vl.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/softmmu/vl.c b/softmmu/vl.c -index e6e0ad5a92..27ce96f671 100644 ---- a/softmmu/vl.c -+++ b/softmmu/vl.c -@@ -1688,9 +1688,17 @@ static void version(void) - QEMU_COPYRIGHT "\n"); - } - -+static void print_stx_warning(void) -+{ -+ printf("\nWARNING: Direct use of qemu-kvm from the command line is not supported by StarlingX.\n" -+ "WARNING: Use libvirt as the stable management interface.\n" -+ "WARNING: Some command line options listed here may not be available in future releases.\n\n"); -+} -+ - static void help(int exitcode) - { - version(); -+ print_stx_warning(); - printf("usage: %s [options] [disk_image]\n\n" - "'disk_image' is a raw hard disk image for IDE hard disk 0\n\n", - error_get_progname()); -@@ -1707,6 +1715,7 @@ static void help(int exitcode) - "\n" - QEMU_HELP_BOTTOM "\n"); - -+ print_stx_warning(); - exit(exitcode); - } - --- -2.25.1 diff --git a/virt/qemu/debian/patches/0002-STX-migration-thread-affinity-and-priority-qmp.patch b/virt/qemu/debian/patches/0002-STX-migration-thread-affinity-and-priority-qmp.patch deleted file mode 100644 index b8d40985a..000000000 --- a/virt/qemu/debian/patches/0002-STX-migration-thread-affinity-and-priority-qmp.patch +++ /dev/null @@ -1,272 +0,0 @@ -From 049547fec5faedf6127cd7bf3c6e72f5a2fc16ab Mon Sep 17 00:00:00 2001 -From: Jim Somerville -Date: Fri, 26 Apr 2019 17:41:04 -0300 -Subject: [PATCH] STX: migration thread affinity and priority qmp - -This includes de-blacklisting the scheduler and affinity -setting syscalls. - -Signed-off-by: Jim Somerville -[ Update hmp-commands struc ] -Signed-off-by: Rafael Falcao ---- - hmp-commands.hx | 30 ++++++++++++++++++++++++ - include/monitor/hmp.h | 2 ++ - migration/migration.c | 53 ++++++++++++++++++++++++++++++++++++++++++ - monitor/hmp-cmds.c | 26 +++++++++++++++++++++ - qapi/misc.json | 30 ++++++++++++++++++++++++ - softmmu/qemu-seccomp.c | 5 ---- - softmmu/trace-events | 1 + - 7 files changed, 142 insertions(+), 5 deletions(-) - -diff --git a/hmp-commands.hx b/hmp-commands.hx -index ff2d7aa8f3..c5db85593b 100644 ---- a/hmp-commands.hx -+++ b/hmp-commands.hx -@@ -1103,6 +1103,36 @@ SRST - once migration finished successfully. Only implemented for SPICE. - ERST - -+ { -+ .name = "migrate_set_thread_cpumask", -+ .args_type = "value:o", -+ .params = "value", -+ .help = "Set CPU mask for the migration thread." -+ "Defaults to CPU 0 if no mask is specified", -+ .cmd = hmp_migrate_set_thread_cpumask, -+ }, -+ -+SRST -+``migrate_set_thread_cpumask`` *value* -+ Set CPU mask for the migration thread -+ERST -+ -+ { -+ .name = "migrate_set_thread_priority", -+ .args_type = "value:o", -+ .params = "value", -+ .help = "Set real time priority for the the migration thread." -+ "Defaults to no change migration thread priority if not" -+ "specified or out of range. Range [1-99].Scheduling" -+ "policy will always be- SCHED_FIFO", -+ .cmd = hmp_migrate_set_thread_priority, -+ }, -+ -+SRST -+``migrate_set_thread_priority`` *value* -+ Set real time priority for the the migration thread -+ERST -+ - { - .name = "dump-guest-memory", - .args_type = "paging:-p,detach:-d,windmp:-w,zlib:-z,lzo:-l,snappy:-s,filename:F,begin:l?,length:l?", -diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h -index ed2913fd18..85100cd33d 100644 ---- a/include/monitor/hmp.h -+++ b/include/monitor/hmp.h -@@ -72,6 +72,8 @@ void hmp_migrate_set_cache_size(Monitor *mon, const QDict *qdict); - void hmp_client_migrate_info(Monitor *mon, const QDict *qdict); - void hmp_migrate_start_postcopy(Monitor *mon, const QDict *qdict); - void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict *qdict); -+void hmp_migrate_set_thread_cpumask(Monitor *mon, const QDict *qdict); -+void hmp_migrate_set_thread_priority(Monitor *mon, const QDict *qdict); - void hmp_set_password(Monitor *mon, const QDict *qdict); - void hmp_expire_password(Monitor *mon, const QDict *qdict); - void hmp_change(Monitor *mon, const QDict *qdict); -diff --git a/migration/migration.c b/migration/migration.c -index 87a9b59f83..b7415a52ca 100644 ---- a/migration/migration.c -+++ b/migration/migration.c -@@ -39,6 +39,7 @@ - #include "qapi/qapi-visit-migration.h" - #include "qapi/qapi-visit-sockets.h" - #include "qapi/qapi-commands-migration.h" -+#include "qapi/qapi-commands-misc.h" - #include "qapi/qapi-events-migration.h" - #include "qapi/qmp/qerror.h" - #include "qapi/qmp/qnull.h" -@@ -56,6 +57,16 @@ - #include "net/announce.h" - #include "qemu/queue.h" - #include "multifd.h" -+#include -+ -+/* #define DEBUG */ -+ -+#ifdef DEBUG -+#define DPRINTF(fmt, ...) \ -+ printf(fmt, ## __VA_ARGS__) -+#else -+#define DPRINTF(fmt, ...) -+#endif - - #ifdef CONFIG_VFIO - #include "hw/vfio/vfio-common.h" -@@ -118,6 +129,11 @@ - static NotifierList migration_state_notifiers = - NOTIFIER_LIST_INITIALIZER(migration_state_notifiers); - -+/* variables for pinning the migration thread to a CPU and assigning the -+ * realtime priority to it */ -+static uint64_t migrate_thread_cpumask=0; -+static uint64_t migrate_thread_priority=0; -+ - static bool deferred_incoming; - - /* Messages sent on the return path from destination to source */ -@@ -2215,6 +2231,30 @@ void qmp_migrate_set_cache_size(int64_t value, Error **errp) - qmp_migrate_set_parameters(&p, errp); - } - -+void qmp_migrate_set_thread_cpumask(int64_t value, Error **errp) -+{ -+ /* Check for truncation */ -+ if (value != (size_t)value) { -+ error_setg(errp, "Migration thread CPU Mask exceeding address space"); -+ return; -+ } -+ /*resize the value */ -+ value >>= 20; /*Magic */ -+ migrate_thread_cpumask = value; -+} -+ -+void qmp_migrate_set_thread_priority(int64_t value, Error **errp) -+{ -+ /* Check for truncation */ -+ if (value != (size_t)value) { -+ error_setg(errp, "Migration thread Priority exceeding address space"); -+ return; -+ } -+ /*resize the value */ -+ value >>= 20; -+ migrate_thread_priority = value; -+} -+ - int64_t qmp_query_migrate_cache_size(Error **errp) - { - return migrate_xbzrle_cache_size(); -@@ -3540,6 +3580,19 @@ static void *migration_thread(void *opaque) - qemu_savevm_send_postcopy_advise(s->to_dst_file); - } - -+ /* Bind Migration thread to the processor specified by the user */ -+ if (sched_setaffinity(0, sizeof(migrate_thread_cpumask), (cpu_set_t *)&migrate_thread_cpumask) <0) { -+ DPRINTF("Error setting user input affinity. Switching to default.\n"); -+ } -+ -+ /* Change the realtime priority of the migration thread specified by the user */ -+ struct sched_param schedp; -+ memset(&schedp, 0, sizeof(schedp)); -+ schedp.sched_priority = migrate_thread_priority; -+ if (sched_setscheduler(0, SCHED_FIFO, &schedp) < 0) { -+ DPRINTF("Error setting user input priority. Switching to default.\n"); -+ } -+ - if (migrate_colo_enabled()) { - /* Notify migration destination that we enable COLO */ - qemu_savevm_send_colo_enable(s->to_dst_file); -diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c -index 65d8ff4849..a079ec3ace 100644 ---- a/monitor/hmp-cmds.c -+++ b/monitor/hmp-cmds.c -@@ -1471,6 +1471,32 @@ void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict *qdict) - hmp_handle_error(mon, err); - } - -+void hmp_migrate_set_thread_cpumask(Monitor *mon, const QDict *qdict) -+{ -+ int64_t value = qdict_get_int(qdict, "value"); -+ Error *err = NULL; -+ -+ qmp_migrate_set_thread_cpumask(value, &err); -+ if (err) { -+ monitor_printf(mon, "%s\n", error_get_pretty(err)); -+ error_free(err); -+ return; -+ } -+} -+ -+void hmp_migrate_set_thread_priority(Monitor *mon, const QDict *qdict) -+{ -+ int64_t value = qdict_get_int(qdict, "value"); -+ Error *err = NULL; -+ -+ qmp_migrate_set_thread_priority(value, &err); -+ if (err) { -+ monitor_printf(mon, "%s\n", error_get_pretty(err)); -+ error_free(err); -+ return; -+ } -+} -+ - void hmp_set_password(Monitor *mon, const QDict *qdict) - { - const char *protocol = qdict_get_str(qdict, "protocol"); -diff --git a/qapi/misc.json b/qapi/misc.json -index 40df513856..1c75d85126 100644 ---- a/qapi/misc.json -+++ b/qapi/misc.json -@@ -238,6 +238,36 @@ - 'returns': 'str', - 'features': [ 'savevm-monitor-nodes' ] } - -+## -+# @migrate_set_thread_cpumask: -+# -+# Set migration thread CPU mask. -+# -+# @value: CPU mask. -+# -+# Returns: nothing on success -+# -+# Notes: A value lesser than zero will be automatically round up to zero. -+# -+# Since: 0.14.0 -+## -+{ 'command': 'migrate_set_thread_cpumask', 'data': {'value': 'int'} } -+ -+## -+# @migrate_set_thread_priority: -+# -+# Set migration thread Real Timer priority mask. -+# -+# @value: Thread Priority. -+# -+# Returns: nothing on success -+# -+# Notes: A value lesser than zero will be automatically round up to zero. -+# -+# Since: 0.14.0 -+## -+{ 'command': 'migrate_set_thread_priority', 'data': {'value': 'int'} } -+ - ## - # @change: - # -diff --git a/softmmu/qemu-seccomp.c b/softmmu/qemu-seccomp.c -index 8325ecb766..b1b8431eb3 100644 ---- a/softmmu/qemu-seccomp.c -+++ b/softmmu/qemu-seccomp.c -@@ -101,11 +101,6 @@ static const struct QemuSeccompSyscall blacklist[] = { - { SCMP_SYS(setpriority), QEMU_SECCOMP_SET_RESOURCECTL }, - { SCMP_SYS(sched_setparam), QEMU_SECCOMP_SET_RESOURCECTL }, - { SCMP_SYS(sched_getparam), QEMU_SECCOMP_SET_RESOURCECTL }, -- { SCMP_SYS(sched_setscheduler), QEMU_SECCOMP_SET_RESOURCECTL, -- ARRAY_SIZE(sched_setscheduler_arg), sched_setscheduler_arg }, -- { SCMP_SYS(sched_getscheduler), QEMU_SECCOMP_SET_RESOURCECTL }, -- { SCMP_SYS(sched_setaffinity), QEMU_SECCOMP_SET_RESOURCECTL }, -- { SCMP_SYS(sched_getaffinity), QEMU_SECCOMP_SET_RESOURCECTL }, - { SCMP_SYS(sched_get_priority_max), QEMU_SECCOMP_SET_RESOURCECTL }, - { SCMP_SYS(sched_get_priority_min), QEMU_SECCOMP_SET_RESOURCECTL }, - }; -diff --git a/softmmu/trace-events b/softmmu/trace-events -index b80ca042e1..b0210d70c3 100644 ---- a/softmmu/trace-events -+++ b/softmmu/trace-events -@@ -26,3 +26,4 @@ runstate_set(int current_state, const char *current_state_str, int new_state, co - system_wakeup_request(int reason) "reason=%d" - qemu_system_shutdown_request(int reason) "reason=%d" - qemu_system_powerdown_request(void) "" -+migrate_thread(uint64_t migrate_thread_cpumask, uint64_t migrate_thread_priority) "migration Thread pinned to %" PRIu64 "with Priority %" PRIu64 --- -2.25.1 diff --git a/virt/qemu/debian/patches/0003-STX-qemu-dpdk-changes-for-openvswitch-dpdk.patch b/virt/qemu/debian/patches/0003-STX-qemu-dpdk-changes-for-openvswitch-dpdk.patch deleted file mode 100644 index deee242c7..000000000 --- a/virt/qemu/debian/patches/0003-STX-qemu-dpdk-changes-for-openvswitch-dpdk.patch +++ /dev/null @@ -1,197 +0,0 @@ -From 31ae2e35caa16dcf4cc1fa2ff5e3c1aa825b5352 Mon Sep 17 00:00:00 2001 -From: Jim Somerville -Date: Fri, 26 Apr 2019 17:41:04 -0300 -Subject: [PATCH] STX: qemu dpdk changes for openvswitch dpdk - -Signed-off-by: Jim Somerville -Signed-off-by: Rafael Falcao ---- - configure | 26 ++++++++++++++++++ - hw/net/virtio-net.c | 5 ++++ - softmmu/vl.c | 67 +++++++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 98 insertions(+) - -diff --git a/configure b/configure -index 18c26e0389..cb6d3c08fc 100755 ---- a/configure -+++ b/configure -@@ -1106,6 +1106,11 @@ for opt do - ;; - --enable-whpx) whpx="enabled" - ;; -+ --disable-dpdk) dpdk="no" -+ ;; -+ --dpdkdir=*) rte_sdk="$optarg" -+ dpdk="yes" -+ ;; - --disable-tcg-interpreter) tcg_interpreter="no" - ;; - --enable-tcg-interpreter) tcg_interpreter="yes" -@@ -5993,6 +5998,27 @@ if test "$guest_agent" = "yes" ; then - echo "CONFIG_GUEST_AGENT=y" >> $config_host_mak - fi - echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak -+if test "$dpdk" = "yes"; then -+ if test "${rte_sdk+set}" != set; then -+ echo "No dpdkdir given" -+ exit 1 -+ fi -+ echo "dpdk_dir=`eval echo $rte_sdk`" >> $config_host_mak -+ echo "dpdk_lib_dir=\$(dpdk_dir)/x86_64-default-linuxapp-gcc/lib" >> $config_host_mak -+ echo "dpdk_inc_dir=\$(dpdk_dir)/x86_64-default-linuxapp-gcc/include" >> $config_host_mak -+ echo "" >> $config_host_mak -+ echo "dpdk_libs=\$(dpdk_lib_dir)/librte_eal.a \\" >> $config_host_mak -+ echo " \$(dpdk_lib_dir)/libethdev.a \\" >> $config_host_mak -+ echo " \$(dpdk_lib_dir)/librte_cmdline.a \\" >> $config_host_mak -+ echo " \$(dpdk_lib_dir)/librte_hash.a \\" >> $config_host_mak -+ echo " \$(dpdk_lib_dir)/librte_lpm.a \\" >> $config_host_mak -+ echo " \$(dpdk_lib_dir)/librte_mbuf.a \\" >> $config_host_mak -+ echo " \$(dpdk_lib_dir)/librte_mempool.a \\" >> $config_host_mak -+ echo " \$(dpdk_lib_dir)/librte_ring.a \\" >> $config_host_mak -+ echo " \$(dpdk_lib_dir)/librte_malloc.a" >> $config_host_mak -+ LIBS="\$(dpdk_libs) $LIBS" -+ QEMU_INCLUDES="-I\$(dpdk_inc_dir) $QEMU_INCLUDES" -+fi - if test "$vde" = "yes" ; then - echo "CONFIG_VDE=y" >> $config_host_mak - echo "VDE_LIBS=$vde_libs" >> $config_host_mak -diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c -index 9179013ac4..a25381c452 100644 ---- a/hw/net/virtio-net.c -+++ b/hw/net/virtio-net.c -@@ -2,6 +2,7 @@ - * Virtio Network Device - * - * Copyright IBM, Corp. 2007 -+ * Copyright 2012-2013 Intel Corporation All Rights Reserved. - * - * Authors: - * Anthony Liguori -@@ -1509,6 +1510,7 @@ static void receive_header(VirtIONet *n, const struct iovec *iov, int iov_cnt, - } - } - -+#if 0 - static int receive_filter(VirtIONet *n, const uint8_t *buf, int size) - { - static const uint8_t bcast[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; -@@ -1559,6 +1561,7 @@ static int receive_filter(VirtIONet *n, const uint8_t *buf, int size) - - return 0; - } -+#endif - - static uint8_t virtio_net_get_hash_type(bool isip4, - bool isip6, -@@ -1687,8 +1690,10 @@ static ssize_t virtio_net_receive_rcu(NetClientState *nc, const uint8_t *buf, - return 0; - } - -+ #if 0 - if (!receive_filter(n, buf, size)) - return size; -+ #endif - - offset = i = 0; - -diff --git a/softmmu/vl.c b/softmmu/vl.c -index 27ce96f671..5f556f1a0e 100644 ---- a/softmmu/vl.c -+++ b/softmmu/vl.c -@@ -2445,6 +2445,35 @@ static const QEMUOption *lookup_opt(int argc, char **argv, - return popt; - } - -+#ifdef CONFIG_ENABLE_DPDK -+static const QEMUOption *quick_scan_opt(int argc, char **argv, int *poptind) -+{ -+ const QEMUOption *popt; -+ int optind = *poptind; -+ char *r = argv[optind]; -+ -+ loc_set_cmdline(argv, optind, 1); -+ optind++; -+ /* Treat --foo the same as -foo. */ -+ if (r[1] == '-') -+ r++; -+ popt = qemu_options; -+ for(;;) { -+ /* need to ignore non qemu args, e.g. dpdk args */ -+ if (!popt->name) { -+ *poptind = optind; -+ return NULL; -+ } -+ if (!strcmp(popt->name, r + 1)) -+ break; -+ popt++; -+ } -+ -+ *poptind = optind; -+ return popt; -+} -+#endif -+ - static MachineClass *select_machine(void) - { - GSList *machines = object_class_get_list(TYPE_MACHINE, false); -@@ -2901,6 +2930,10 @@ void qemu_init(int argc, char **argv, char **envp) - FILE *vmstate_dump_file = NULL; - Error *main_loop_err = NULL; - Error *err = NULL; -+#ifdef CONFIG_ENABLE_DPDK -+ bool use_dpdk = false; -+ int retval; -+#endif - bool list_data_dirs = false; - char **dirs; - const char *mem_path = NULL; -@@ -2922,6 +2955,37 @@ void qemu_init(int argc, char **argv, char **envp) - atexit(qemu_run_exit_notifiers); - qemu_init_exec_dir(argv[0]); - -+#ifdef CONFIG_ENABLE_DPDK -+ /* need to check for -enable-dpdk before calling rte_eal_init. If -+ * it is not found, don't call rte_eal_init */ -+ optind = 1; -+ while (optind < argc) { -+ if (argv[optind][0] != '-') { -+ /* disk image */ -+ optind++; -+ continue; -+ } else { -+ const QEMUOption *popt; -+ popt = quick_scan_opt(argc, argv, &optind); -+ if (popt) { -+ switch (popt->index) { -+ case QEMU_OPTION_enable_dpdk: -+ use_dpdk = true; -+ break; -+ } -+ } -+ } -+ } -+ -+ if (use_dpdk) { -+ if ((retval = rte_eal_init(argc, argv)) < 0) -+ return -1; -+ -+ argc -= retval; -+ argv += retval; -+ } -+#endif -+ - module_call_init(MODULE_INIT_QOM); - module_call_init(MODULE_INIT_MIGRATION); - -@@ -3869,6 +3933,9 @@ void qemu_init(int argc, char **argv, char **envp) - - user_register_global_props(); - -+ extern int -+ rte_eal_init(int argc, char **argv); -+ - replay_configure(icount_opts); - - if (incoming && !preconfig_exit_requested) { --- -2.25.1 diff --git a/virt/qemu/debian/patches/0004-STX-qemu-add-enable-dpdk-runtime-flag.patch b/virt/qemu/debian/patches/0004-STX-qemu-add-enable-dpdk-runtime-flag.patch deleted file mode 100644 index c632d823b..000000000 --- a/virt/qemu/debian/patches/0004-STX-qemu-add-enable-dpdk-runtime-flag.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 6b809649650c367ea0458928434600ca064206c1 Mon Sep 17 00:00:00 2001 -From: Paul Barrette -Date: Fri, 26 Apr 2019 17:41:04 -0300 -Subject: [PATCH] STX: qemu: add -enable-dpdk runtime flag - -For Intel's dpdk openvswitch support, qemu takes a set of dpdk -specific command line args. Qemu will dump and error if it doesn't -recognize the CLI args. So, add a new runtime flag to tell qemu that -it is using dpdk and then the main function can take the appropriate -action. This way, qemu can take dpdk args or run normally without -dpdk. - -Signed-off-by: Paul Barrette -Signed-off-by: Jim Somerville -[ Update qemu-options.hx struc ] -Signed-off-by: Rafael Falcao ---- - qemu-options.hx | 7 +++++++ - softmmu/vl.c | 1 + - 2 files changed, 8 insertions(+) - -diff --git a/qemu-options.hx b/qemu-options.hx -index 104632ea34..1a339453e4 100644 ---- a/qemu-options.hx -+++ b/qemu-options.hx -@@ -906,6 +906,13 @@ DEFHEADING() - - DEFHEADING(Block device options:) - -+DEF("enable-dpdk", 0, QEMU_OPTION_enable_dpdk, -+ "-enable-dpdk initialized DPDK EAL environment\n", QEMU_ARCH_ALL) -+SRST -+``-enable-dpdk`` -+ Enable DPDK EAL environment at init time (expecting DPDK CLI params). -+ERST -+ - DEF("fda", HAS_ARG, QEMU_OPTION_fda, - "-fda/-fdb file use 'file' as floppy disk 0/1 image\n", QEMU_ARCH_ALL) - DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "", QEMU_ARCH_ALL) -diff --git a/softmmu/vl.c b/softmmu/vl.c -index 5f556f1a0e..a398697d0d 100644 ---- a/softmmu/vl.c -+++ b/softmmu/vl.c -@@ -3899,6 +3899,7 @@ void qemu_init(int argc, char **argv, char **envp) - qsp_enable(); - break; - case QEMU_OPTION_nouserconfig: -+ case QEMU_OPTION_enable_dpdk: - /* Nothing to be parsed here. Especially, do not error out below. */ - break; - default: --- -2.25.1 diff --git a/virt/qemu/debian/patches/0005-STX-qemu-add-compile-define-for-CONFIG_DPDK.patch b/virt/qemu/debian/patches/0005-STX-qemu-add-compile-define-for-CONFIG_DPDK.patch deleted file mode 100644 index 9174233d6..000000000 --- a/virt/qemu/debian/patches/0005-STX-qemu-add-compile-define-for-CONFIG_DPDK.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 93451fe51ab37bf8663a766ce1d77d3ac883ee1f Mon Sep 17 00:00:00 2001 -From: Paul Barrette -Date: Fri, 26 Apr 2019 17:41:04 -0300 -Subject: [PATCH] STX: qemu: add compile define for CONFIG_DPDK - -Dpdk build linkage will be detected if --dpdkdir is specified at -configure time, which is the default. In the dpdk=yes section, add a -compile time define that can be used internally. - -Signed-off-by: Paul Barrette -Signed-off-by: Jim Somerville -Signed-off-by: Rafael Falcao ---- - configure | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/configure b/configure -index cb6d3c08fc..d0c4b79446 100755 ---- a/configure -+++ b/configure -@@ -6003,7 +6003,8 @@ if test "$dpdk" = "yes"; then - echo "No dpdkdir given" - exit 1 - fi -- echo "dpdk_dir=`eval echo $rte_sdk`" >> $config_host_mak -+ echo "CONFIG_ENABLE_DPDK=y" >> $config_host_mak -+ echo "dpdk_dir=`eval echo $rte_sdk`" >> $config_host_mak - echo "dpdk_lib_dir=\$(dpdk_dir)/x86_64-default-linuxapp-gcc/lib" >> $config_host_mak - echo "dpdk_inc_dir=\$(dpdk_dir)/x86_64-default-linuxapp-gcc/include" >> $config_host_mak - echo "" >> $config_host_mak --- -2.25.1 diff --git a/virt/qemu/debian/patches/0006-STX-add-libdl.patch b/virt/qemu/debian/patches/0006-STX-add-libdl.patch deleted file mode 100644 index bae935e9b..000000000 --- a/virt/qemu/debian/patches/0006-STX-add-libdl.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 95ba02087f976256a91045286628fb797e3f0af1 Mon Sep 17 00:00:00 2001 -From: Amy Fong -Date: Fri, 26 Apr 2019 17:41:04 -0300 -Subject: [PATCH] STX: add libdl - -qemu/dpdk 1.7* compile errors - -In dpdk 1.7.*, librte_eal needs -ldl, otherwise, we'll -get errors like: - -LINK x86_64-softmmu/qemu-system-x86_64 -/usr/bin/ld: -.../x86_64-ivshmem-linuxapp-gcc/lib/librte_eal.a(eal.o): -undefined reference to symbol 'dlopen@@GLIBC_2.2.5' -/usr/bin/ld: note: 'dlopen@@GLIBC_2.2.5' is defined in DSO -/lib64/libdl.so.2 so try adding it to the linker command line -/lib64/libdl.so.2: could not read symbols: Invalid operation -collect2: error: ld returned 1 exit status - -Signed-off-by: Amy Fong -Signed-off-by: Jim Somerville -Signed-off-by: Rafael Falcao ---- - configure | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure b/configure -index d0c4b79446..e90a4e8fe0 100755 ---- a/configure -+++ b/configure -@@ -6017,7 +6017,7 @@ if test "$dpdk" = "yes"; then - echo " \$(dpdk_lib_dir)/librte_mempool.a \\" >> $config_host_mak - echo " \$(dpdk_lib_dir)/librte_ring.a \\" >> $config_host_mak - echo " \$(dpdk_lib_dir)/librte_malloc.a" >> $config_host_mak -- LIBS="\$(dpdk_libs) $LIBS" -+ LIBS="\$(dpdk_libs) -ldl $LIBS" - QEMU_INCLUDES="-I\$(dpdk_inc_dir) $QEMU_INCLUDES" - fi - if test "$vde" = "yes" ; then --- -2.25.1 diff --git a/virt/qemu/debian/patches/0007-STX-qemu-dpdk-custom-config.patch b/virt/qemu/debian/patches/0007-STX-qemu-dpdk-custom-config.patch deleted file mode 100644 index 8011de56b..000000000 --- a/virt/qemu/debian/patches/0007-STX-qemu-dpdk-custom-config.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 2e53239f58b4faeeca9f1ae279207edb3aa4f30c Mon Sep 17 00:00:00 2001 -From: Jim Somerville -Date: Fri, 26 Apr 2019 17:41:04 -0300 -Subject: [PATCH] STX: qemu dpdk custom config - -Signed-off-by: Jim Somerville -Signed-off-by: Rafael Falcao ---- - configure | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/configure b/configure -index e90a4e8fe0..77c0321b5f 100755 ---- a/configure -+++ b/configure -@@ -1111,6 +1111,8 @@ for opt do - --dpdkdir=*) rte_sdk="$optarg" - dpdk="yes" - ;; -+ --dpdktarget=*) rte_target="$optarg" -+ ;; - --disable-tcg-interpreter) tcg_interpreter="no" - ;; - --enable-tcg-interpreter) tcg_interpreter="yes" -@@ -6005,9 +6007,10 @@ if test "$dpdk" = "yes"; then - fi - echo "CONFIG_ENABLE_DPDK=y" >> $config_host_mak - echo "dpdk_dir=`eval echo $rte_sdk`" >> $config_host_mak -- echo "dpdk_lib_dir=\$(dpdk_dir)/x86_64-default-linuxapp-gcc/lib" >> $config_host_mak -- echo "dpdk_inc_dir=\$(dpdk_dir)/x86_64-default-linuxapp-gcc/include" >> $config_host_mak - echo "" >> $config_host_mak -+ echo "dpdk_target=`eval echo $rte_target`" >> $config_host_mak -+ echo "dpdk_lib_dir=\$(dpdk_dir)/\$(dpdk_target)/lib" >> $config_host_mak -+ echo "dpdk_inc_dir=\$(dpdk_dir)/\$(dpdk_target)/include" >> $config_host_mak - echo "dpdk_libs=\$(dpdk_lib_dir)/librte_eal.a \\" >> $config_host_mak - echo " \$(dpdk_lib_dir)/libethdev.a \\" >> $config_host_mak - echo " \$(dpdk_lib_dir)/librte_cmdline.a \\" >> $config_host_mak --- -2.25.1 diff --git a/virt/qemu/debian/patches/0008-STX-realtime-uses-mlock-instead-of-mlockall.patch b/virt/qemu/debian/patches/0008-STX-realtime-uses-mlock-instead-of-mlockall.patch deleted file mode 100644 index 2b7284030..000000000 --- a/virt/qemu/debian/patches/0008-STX-realtime-uses-mlock-instead-of-mlockall.patch +++ /dev/null @@ -1,102 +0,0 @@ -From f06fb5c1bf146f661fdca218943018fcf25c5ca6 Mon Sep 17 00:00:00 2001 -From: Jim Somerville -Date: Fri, 26 Apr 2019 17:41:04 -0300 -Subject: [PATCH] STX: realtime uses mlock instead of mlockall - -This enhances qemu to use mlock() instead of mlockall() when -'-realtime mlock=on' is specified, so that memory is engineerable. - -mlockall() is not practically engineerable since it requires significant -4K reserved memory per process. It will lock pages of the code, data and -stack segment, shared libraries, user space kernel data, shared memory, -and memory-mapped files. This easily translates to >> 1GiB when you -consider [heap] segment of 225MiB and VmData near 500 MiB to 900 MiB. - -Using mlock() only in ram_block_add(), we no longer lock stack / data, -shared libraries, and heap. - -NOTE: This degrades the guarantee provided by '-realtime mlock=on' -since we may end up delaying the instance to fault in code pages from -disk or allocate memory, thus breaking any realtime guarantees. - -Signed-off-by: Jim Somerville -Signed-off-by: Rafael Falcao ---- - softmmu/physmem.c | 13 ++++++++++++- - softmmu/vl.c | 8 ++++---- - 2 files changed, 16 insertions(+), 5 deletions(-) - -diff --git a/softmmu/physmem.c b/softmmu/physmem.c -index 3027747c03..e63fad9b13 100644 ---- a/softmmu/physmem.c -+++ b/softmmu/physmem.c -@@ -1464,6 +1464,7 @@ static void *file_ram_alloc(RAMBlock *block, - Error **errp) - { - void *area; -+ int flags; - - block->page_size = qemu_fd_getpagesize(fd); - if (block->mr->align % block->page_size) { -@@ -1510,8 +1511,13 @@ static void *file_ram_alloc(RAMBlock *block, - perror("ftruncate"); - } - -+ /* WRS - enable mlock */ -+ flags = block->flags & RAM_SHARED; -+ if (enable_mlock) { -+ flags |= MAP_LOCKED; -+ } - area = qemu_ram_mmap(fd, memory, block->mr->align, -- block->flags & RAM_SHARED, block->flags & RAM_PMEM); -+ flags, block->flags & RAM_PMEM); - if (area == MAP_FAILED) { - error_setg_errno(errp, errno, - "unable to map backing store for guest RAM"); -@@ -1937,6 +1943,11 @@ static void ram_block_add(RAMBlock *new_block, Error **errp, bool shared) - QEMU_MADV_DONTFORK); - } - ram_block_notify_add(new_block->host, new_block->max_length); -+ if (enable_mlock) { -+ if (mlock(new_block->host, new_block->max_length) < 0) { -+ perror("mlock"); -+ } -+ } - } - } - -diff --git a/softmmu/vl.c b/softmmu/vl.c -index a398697d0d..527fe4e961 100644 ---- a/softmmu/vl.c -+++ b/softmmu/vl.c -@@ -2,6 +2,7 @@ - * QEMU System Emulator - * - * Copyright (c) 2003-2008 Fabrice Bellard -+ * Copyright (c) 2013-2016 Wind River Systems, Inc. All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal -@@ -38,6 +39,7 @@ - #include "sysemu/tcg.h" - #include "sysemu/xen.h" - -+#include "qemu-common.h" - #include "qemu/error-report.h" - #include "qemu/sockets.h" - #include "sysemu/accel.h" -@@ -1111,10 +1113,8 @@ static QemuOptsList qemu_smp_opts = { - static void realtime_init(void) - { - if (enable_mlock) { -- if (os_mlock() < 0) { -- error_report("locking memory failed"); -- exit(1); -- } -+ /* WRS - do not call os_mlock(), prevent call to mlockall */ -+ ; - } - } - --- -2.25.1 diff --git a/virt/qemu/debian/patches/0009-STX-Suspend-Resume-for-VMs-with-PCIPT-Virtio.patch b/virt/qemu/debian/patches/0009-STX-Suspend-Resume-for-VMs-with-PCIPT-Virtio.patch deleted file mode 100644 index 76d17b5e6..000000000 --- a/virt/qemu/debian/patches/0009-STX-Suspend-Resume-for-VMs-with-PCIPT-Virtio.patch +++ /dev/null @@ -1,95 +0,0 @@ -From ad19f7aad9e2ff9a007eddbd9a19b61a9c1af769 Mon Sep 17 00:00:00 2001 -From: Jim Somerville -[ Trimmed the shortlog ] -Signed-off-by: Rafael Falcao ---- - hw/virtio/vhost.c | 26 +++++++++++++++++++++++++- - 1 file changed, 25 insertions(+), 1 deletion(-) - -diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c -index 614ccc2bcb..05c045925a 100644 ---- a/hw/virtio/vhost.c -+++ b/hw/virtio/vhost.c -@@ -61,6 +61,10 @@ bool vhost_has_free_slot(void) - return slots_limit > used_memslots; - } - -+static int vhost_virtqueue_set_addr(struct vhost_dev *dev, -+ struct vhost_virtqueue *vq, -+ unsigned idx, bool enable_log); -+ - static void vhost_dev_sync_region(struct vhost_dev *dev, - MemoryRegionSection *section, - uint64_t mfirst, uint64_t mlast, -@@ -448,6 +452,21 @@ static void vhost_begin(MemoryListener *listener) - dev->n_tmp_sections = 0; - } - -+static void vhost_update_backend_ring_mappings(struct vhost_dev *dev) -+{ -+ int i,r; -+ -+ if(dev->vhost_ops->backend_type != VHOST_BACKEND_TYPE_USER) { -+ return; -+ } -+ -+ for (i = 0; i < dev->nvqs; ++i) { -+ r = vhost_virtqueue_set_addr(dev, dev->vqs + i, i, dev->log_enabled); -+ assert(r >= 0); -+ } -+ return; -+} -+ - static void vhost_commit(MemoryListener *listener) - { - struct vhost_dev *dev = container_of(listener, struct vhost_dev, -@@ -524,7 +543,7 @@ static void vhost_commit(MemoryListener *listener) - if (r < 0) { - VHOST_OPS_DEBUG("vhost_set_mem_table failed"); - } -- goto out; -+ goto vring_mapping; - } - log_size = vhost_get_log_size(dev); - /* We allocate an extra 4K bytes to log, -@@ -543,6 +562,11 @@ static void vhost_commit(MemoryListener *listener) - vhost_dev_log_resize(dev, log_size); - } - -+vring_mapping: -+ /* For vhost-user backend, update the vring mappings after we sent a new -+ * guest memory map. */ -+ vhost_update_backend_ring_mappings(dev); -+ - out: - /* Deref the old list of sections, this must happen _after_ the - * vhost_set_mem_table to ensure the client isn't still using the --- -2.25.1 - diff --git a/virt/qemu/debian/patches/0010-STX-Modify-live-migration-auto-converge-threshold.patch b/virt/qemu/debian/patches/0010-STX-Modify-live-migration-auto-converge-threshold.patch deleted file mode 100644 index 934384d3a..000000000 --- a/virt/qemu/debian/patches/0010-STX-Modify-live-migration-auto-converge-threshold.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 862773099be4c599cf2885cb8b0f706b01964157 Mon Sep 17 00:00:00 2001 -From: Jim Somerville -Date: Fri, 26 Apr 2019 17:41:04 -0300 -Subject: [PATCH] STX: Modify live migration auto-converge threshold - -Currently the live migration auto-converge can throttle a VM -vcpus time to 99%. This value for "max cpu trottling percentage" -causes some detaches to fail. Based on characterization results, -we set this value to 92. - -Signed-off-by: Jim Somerville -[ Trimmed the shortlog ] -Signed-off-by: Rafael Falcao ---- - softmmu/cpu-throttle.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/softmmu/cpu-throttle.c b/softmmu/cpu-throttle.c -index 2ec4b8e0bc..211c074f8d 100644 ---- a/softmmu/cpu-throttle.c -+++ b/softmmu/cpu-throttle.c -@@ -35,7 +35,7 @@ static QEMUTimer *throttle_timer; - static unsigned int throttle_percentage; - - #define CPU_THROTTLE_PCT_MIN 1 --#define CPU_THROTTLE_PCT_MAX 99 -+#define CPU_THROTTLE_PCT_MAX 92 - #define CPU_THROTTLE_TIMESLICE_NS 10000000 - - static void cpu_throttle_thread(CPUState *cpu, run_on_cpu_data opaque) --- -2.25.1 diff --git a/virt/qemu/debian/patches/0011-STX-virtio-serial-don-t-touch-virtqueue-if-vm-is-sto.patch b/virt/qemu/debian/patches/0011-STX-virtio-serial-don-t-touch-virtqueue-if-vm-is-sto.patch deleted file mode 100644 index d9c4ec321..000000000 --- a/virt/qemu/debian/patches/0011-STX-virtio-serial-don-t-touch-virtqueue-if-vm-is-sto.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 80c5f13e549cb59adc781335c4d6a8f81f578615 Mon Sep 17 00:00:00 2001 -From: Jim Somerville -Date: Fri, 26 Apr 2019 17:41:04 -0300 -Subject: [PATCH] STX: virtio-serial: don't touch virtqueue if vm is stopped - Candidate for upstreaming. - -During migration there is a window where virtio-serial -data has been transmitted to the receiving side, but -the region caches haven't been initialized there yet. -This causes an assertion fail crash. - -The fix is inspired by: - -70e53e6 virtio-net: don't touch virtqueue if vm is stopped - -We remove the call to virtio_queue_ready as it is covered -by the call to virtio_queue_empty already, and replace it -with a test to ensure that the vm is running. - -Signed-off-by: Jim Somerville -[ Trimmed the shortlog ] -Signed-off-by: Rafael Falcao ---- - hw/char/virtio-serial-bus.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/hw/char/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c -index cf08ef9728..9b4b258413 100644 ---- a/hw/char/virtio-serial-bus.c -+++ b/hw/char/virtio-serial-bus.c -@@ -311,7 +311,7 @@ size_t virtio_serial_guest_ready(VirtIOSerialPort *port) - VirtQueue *vq = port->ivq; - unsigned int bytes; - -- if (!virtio_queue_ready(vq) || -+ if (!vdev->vm_running || - !(vdev->status & VIRTIO_CONFIG_S_DRIVER_OK) || - virtio_queue_empty(vq)) { - return 0; --- -2.25.1 diff --git a/virt/qemu/debian/patches/series b/virt/qemu/debian/patches/series deleted file mode 100644 index 71ff99010..000000000 --- a/virt/qemu/debian/patches/series +++ /dev/null @@ -1,11 +0,0 @@ -0001-STX-Add-support-statement-to-help-output.patch -0002-STX-migration-thread-affinity-and-priority-qmp.patch -0003-STX-qemu-dpdk-changes-for-openvswitch-dpdk.patch -0004-STX-qemu-add-enable-dpdk-runtime-flag.patch -0005-STX-qemu-add-compile-define-for-CONFIG_DPDK.patch -0006-STX-add-libdl.patch -0007-STX-qemu-dpdk-custom-config.patch -0008-STX-realtime-uses-mlock-instead-of-mlockall.patch -0009-STX-Suspend-Resume-for-VMs-with-PCIPT-Virtio.patch -0010-STX-Modify-live-migration-auto-converge-threshold.patch -0011-STX-virtio-serial-don-t-touch-virtqueue-if-vm-is-sto.patch diff --git a/virt/qemu/qemu/qemu-system-x86.conf b/virt/qemu/qemu/qemu-system-x86.conf deleted file mode 100644 index b00377d5a..000000000 --- a/virt/qemu/qemu/qemu-system-x86.conf +++ /dev/null @@ -1 +0,0 @@ -options kvm-intel nested=1 diff --git a/virt/qemu/qemu/qemu_clean b/virt/qemu/qemu/qemu_clean deleted file mode 100644 index ddb19fc4a..000000000 --- a/virt/qemu/qemu/qemu_clean +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# -# chkconfig: 2345 50 50 -# - -### BEGIN INIT INFO -# Provides: qemu_clean -# Short-Description: Clean up stale unix sockets for qemu -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -### END INIT INFO - - - -start() -{ - cd /var/lib/libvirt/qemu - rm -f instance-*.monitor - rm -f cgcs.heartbeat.* -} - -stop () -{ - # Nothing to do - return -} - -case "$1" in - start) - start - ;; - stop) - stop - ;; - *) - echo "Usage: $0 {start|stop}" - exit 1 - ;; -esac - -exit 0 diff --git a/virt/qemu/qemu/qemu_clean.service b/virt/qemu/qemu/qemu_clean.service deleted file mode 100644 index 11e07d4e5..000000000 --- a/virt/qemu/qemu/qemu_clean.service +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=Titanium Cloud libvirt QEMU cleanup -After=syslog.target network.target logmgmt.service -Before=libvirtd.service - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=/etc/init.d/qemu_clean start -ExecStop=/etc/init.d/qemu_clean stop -ExecReload= - -[Install] -WantedBy=multi-user.target diff --git a/virt/qemu/scripts/autopatch.sh b/virt/qemu/scripts/autopatch.sh deleted file mode 100755 index ebc59af19..000000000 --- a/virt/qemu/scripts/autopatch.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -SOURCE_SPEC=~/qemu/qemu-kvm.spec -SOURCE_PATCH_DIR=~/qemu/ - -# Base patch order on the '%patch' statements (not 'Patchx:' definition) -for patch in `cat $SOURCE_SPEC | grep '%patch[0-9]\{1,\} ' | awk '{print $1'}`; do - # Resolve patch name base on it's id/number - id=`echo $patch | sed 's/%patch//'` - p=`grep "Patch$id:" $SOURCE_SPEC | awk '{print $2}'` - - echo "-> Processing patch: $p" - git am -3 $SOURCE_PATCH_DIR/$p - if [ $? -ne 0 ]; then - echo "--> Failed, falling back to manual patching" - git am --abort - # patch -p1 < $SOURCE_PATCH_DIR/$p - git apply --index $SOURCE_PATCH_DIR/$p - if [ $? -ne 0 ]; then - echo "--> Failed manual patching, abort" - else - git add -A - git commit -m "Manual patch apply: $p" - fi - fi -done