From 1a18f537bfd85b21c6d955bfff1876c90ee215b7 Mon Sep 17 00:00:00 2001 From: Scott Little Date: Wed, 1 Aug 2018 10:02:19 -0400 Subject: [PATCH] Internal restructuring of stx-integ Create new directories: ceph config config-files filesystem kernel kernel/kernel-modules ldap logging strorage-drivers tools utilities virt Retire directories: connectivity core devtools support extended Delete two packages: tgt irqbalance Relocated packages: base/ dhcp initscripts libevent lighttpd linuxptp memcached net-snmp novnc ntp openssh pam procps sanlock shadow sudo systemd util-linux vim watchdog ceph/ python-cephclient config/ facter puppet-4.8.2 puppet-modules filesystem/ e2fsprogs nfs-utils nfscheck kernel/ kernel-std kernel-rt kernel/kernel-modules/ mlnx-ofa_kernel ldap/ nss-pam-ldapd openldap logging/ syslog-ng logrotate networking/ lldpd iproute mellanox python-ryu mlx4-config python/ python-2.7.5 python-django python-gunicorn python-setuptools python-smartpm python-voluptuous security/ shim-signed shim-unsigned tboot strorage-drivers/ python-3parclient python-lefthandclient virt/ cloud-init libvirt libvirt-python qemu tools/ storage-topology vm-topology utilities/ tis-extensions namespace-utils nova-utils update-motd Change-Id: I37ade764d873c701b35eac5881eb40412ba64a86 Story: 2002801 Task: 22687 Signed-off-by: Scott Little --- libvirt/.gitignore | 6 + libvirt/PKG-INFO | 16 + libvirt/README | 37 + libvirt/centos/build_srpm.data | 8 + libvirt/centos/libvirt.spec | 2146 ++++++ libvirt/libvirt-2.0.0/libvirt.logrotate | 14 + libvirt/libvirt-2.0.0/libvirt.lxc | 15 + libvirt/libvirt-2.0.0/libvirt.qemu | 15 + libvirt/libvirt-2.0.0/libvirt.uml | 15 + libvirt/libvirt-3.5.0/libvirt.logrotate | 14 + libvirt/libvirt-3.5.0/libvirt.lxc | 15 + libvirt/libvirt-3.5.0/libvirt.qemu | 15 + libvirt/libvirt-3.5.0/libvirt.uml | 15 + qemu/.gitignore | 6 + qemu/PKG-INFO | 19 + qemu/README | 17 + qemu/centos/build_srpm.data | 8 + qemu/centos/files/80-kvm.rules | 1 + qemu/centos/files/85-kvm.preset | 5 + qemu/centos/files/95-kvm-memlock.conf | 10 + qemu/centos/files/99-qemu-guest-agent.rules | 2 + qemu/centos/files/README.rhel6-gpxe-source | 9 + qemu/centos/files/bios-256k.bin | Bin 0 -> 262144 bytes qemu/centos/files/bridge.conf | 1 + qemu/centos/files/build_configure.sh | 118 + qemu/centos/files/ksm.service | 13 + qemu/centos/files/ksm.sysconfig | 4 + qemu/centos/files/ksmctl.c | 77 + qemu/centos/files/ksmtuned | 138 + qemu/centos/files/ksmtuned.conf | 21 + qemu/centos/files/ksmtuned.service | 12 + qemu/centos/files/kvm-setup | 31 + qemu/centos/files/kvm-setup.service | 14 + qemu/centos/files/kvm.conf | 12 + qemu/centos/files/qemu-ga.sysconfig | 19 + qemu/centos/files/qemu-guest-agent.service | 18 + qemu/centos/files/qemu.binfmt | 17 + qemu/centos/files/rhel6-e1000.rom | Bin 0 -> 69120 bytes qemu/centos/files/rhel6-ne2k_pci.rom | Bin 0 -> 54272 bytes qemu/centos/files/rhel6-pcnet.rom | Bin 0 -> 54784 bytes qemu/centos/files/rhel6-rtl8139.rom | Bin 0 -> 54272 bytes qemu/centos/files/rhel6-virtio.rom | Bin 0 -> 53248 bytes qemu/centos/files/vhost.conf | 3 + qemu/centos/qemu-kvm.spec | 5730 +++++++++++++++++ qemu/qemu/qemu-system-x86.conf | 1 + qemu/qemu/qemu_clean | 41 + qemu/qemu/qemu_clean.service | 14 + qemu/scripts/autopatch.sh | 26 + virt/libvirt-python/PKG-INFO | 14 + virt/libvirt-python/centos/build_srpm.data | 1 + ...te-package-versioning-for-TIS-format.patch | 28 + .../centos/meta_patches/PATCH_ORDER | 1 + virt/libvirt-python/centos/srpm_path | 1 + 53 files changed, 8763 insertions(+) create mode 100644 libvirt/.gitignore create mode 100644 libvirt/PKG-INFO create mode 100644 libvirt/README create mode 100644 libvirt/centos/build_srpm.data create mode 100644 libvirt/centos/libvirt.spec create mode 100644 libvirt/libvirt-2.0.0/libvirt.logrotate create mode 100644 libvirt/libvirt-2.0.0/libvirt.lxc create mode 100644 libvirt/libvirt-2.0.0/libvirt.qemu create mode 100644 libvirt/libvirt-2.0.0/libvirt.uml create mode 100644 libvirt/libvirt-3.5.0/libvirt.logrotate create mode 100644 libvirt/libvirt-3.5.0/libvirt.lxc create mode 100644 libvirt/libvirt-3.5.0/libvirt.qemu create mode 100644 libvirt/libvirt-3.5.0/libvirt.uml create mode 100644 qemu/.gitignore create mode 100644 qemu/PKG-INFO create mode 100644 qemu/README create mode 100644 qemu/centos/build_srpm.data create mode 100644 qemu/centos/files/80-kvm.rules create mode 100644 qemu/centos/files/85-kvm.preset create mode 100644 qemu/centos/files/95-kvm-memlock.conf create mode 100644 qemu/centos/files/99-qemu-guest-agent.rules create mode 100644 qemu/centos/files/README.rhel6-gpxe-source create mode 100644 qemu/centos/files/bios-256k.bin create mode 100644 qemu/centos/files/bridge.conf create mode 100755 qemu/centos/files/build_configure.sh create mode 100644 qemu/centos/files/ksm.service create mode 100644 qemu/centos/files/ksm.sysconfig create mode 100644 qemu/centos/files/ksmctl.c create mode 100644 qemu/centos/files/ksmtuned create mode 100644 qemu/centos/files/ksmtuned.conf create mode 100644 qemu/centos/files/ksmtuned.service create mode 100644 qemu/centos/files/kvm-setup create mode 100644 qemu/centos/files/kvm-setup.service create mode 100644 qemu/centos/files/kvm.conf create mode 100644 qemu/centos/files/qemu-ga.sysconfig create mode 100644 qemu/centos/files/qemu-guest-agent.service create mode 100644 qemu/centos/files/qemu.binfmt create mode 100644 qemu/centos/files/rhel6-e1000.rom create mode 100644 qemu/centos/files/rhel6-ne2k_pci.rom create mode 100644 qemu/centos/files/rhel6-pcnet.rom create mode 100644 qemu/centos/files/rhel6-rtl8139.rom create mode 100644 qemu/centos/files/rhel6-virtio.rom create mode 100644 qemu/centos/files/vhost.conf create mode 100644 qemu/centos/qemu-kvm.spec create mode 100644 qemu/qemu/qemu-system-x86.conf create mode 100644 qemu/qemu/qemu_clean create mode 100644 qemu/qemu/qemu_clean.service create mode 100755 qemu/scripts/autopatch.sh create mode 100644 virt/libvirt-python/PKG-INFO create mode 100644 virt/libvirt-python/centos/build_srpm.data create mode 100644 virt/libvirt-python/centos/meta_patches/0001-Update-package-versioning-for-TIS-format.patch create mode 100644 virt/libvirt-python/centos/meta_patches/PATCH_ORDER create mode 100644 virt/libvirt-python/centos/srpm_path diff --git a/libvirt/.gitignore b/libvirt/.gitignore new file mode 100644 index 0000000..b93f29d --- /dev/null +++ b/libvirt/.gitignore @@ -0,0 +1,6 @@ +!.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/libvirt/PKG-INFO b/libvirt/PKG-INFO new file mode 100644 index 0000000..3d4ac7c --- /dev/null +++ b/libvirt/PKG-INFO @@ -0,0 +1,16 @@ +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/libvirt/README b/libvirt/README new file mode 100644 index 0000000..a2b167b --- /dev/null +++ b/libvirt/README @@ -0,0 +1,37 @@ +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/libvirt/centos/build_srpm.data b/libvirt/centos/build_srpm.data new file mode 100644 index 0000000..c7efb48 --- /dev/null +++ b/libvirt/centos/build_srpm.data @@ -0,0 +1,8 @@ +SRC_DIR="$CGCS_BASE/git/libvirt" +COPY_LIST="\ + libvirt-3.5.0/* \ + $CGCS_BASE/downloads/gnulib-ffc927e.tar.gz \ + $CGCS_BASE/downloads/keycodemapdb-8370ba8.tar.gz" +TIS_BASE_SRCREV=9bd7c96bd0a0cc879c1e44277f5a734166bf1add +TIS_PATCH_VER=GITREVCOUNT +BUILD_IS_SLOW=4 diff --git a/libvirt/centos/libvirt.spec b/libvirt/centos/libvirt.spec new file mode 100644 index 0000000..decaae0 --- /dev/null +++ b/libvirt/centos/libvirt.spec @@ -0,0 +1,2146 @@ +# -*- 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} + +# WRS: 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_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 + + +%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: 3.5.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 + +# WRS +Source2: libvirt.logrotate +Source3: libvirt.lxc +Source4: libvirt.qemu +Source5: libvirt.uml +Source6: gnulib-ffc927e.tar.gz +Source7: keycodemapdb-8370ba8.tar.gz + +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 +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 + +# WRS: For generating configure +BuildRequires: gnulib +# WRS: 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 + +%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 + +%description admin +The client side utilities to control the libvirt daemon. + +%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 + +# WRS: 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} + +#WRS: 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 +%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 + +# WRS: 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 + +# WRS: 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 -d -m 711 %{buildroot}/data/images +## 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 +# WRS: End custom install + +%clean +rm -fr %{buildroot} + +# WRS: 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 +# WRS: 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 + +# WRS: Customization +%dir /data/images/ + +%files docs +# TODO(WRS): NEWS is not present in git source repo. +%doc AUTHORS ChangeLog.gz README TODO +%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}/virtlockd.service +%{_unitdir}/virtlockd.socket +%else +%{_sysconfdir}/rc.d/init.d/libvirtd +%{_sysconfdir}/rc.d/init.d/virtlogd +%{_sysconfdir}/rc.d/init.d/virtlockd +%endif +%doc daemon/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 + +# WRS: Customization +/etc/logrotate.d/* + +%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 + +%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 +%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 + +# WRS: Disable dtrace +# %{_datadir}/systemtap/tapset/libvirt_probes*.stp +# %{_datadir}/systemtap/tapset/libvirt_qemu_probes*.stp +# %{_datadir}/systemtap/tapset/libvirt_functions.stp + + +%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/secret.rng +%{_datadir}/libvirt/schemas/storagecommon.rng +%{_datadir}/libvirt/schemas/storagepool.rng +%{_datadir}/libvirt/schemas/storagevol.rng + +%{_datadir}/libvirt/cpu_map.xml + +%{_datadir}/libvirt/test-screenshot.png + +%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf + +%files admin +%{_mandir}/man1/virt-admin.1* +%{_bindir}/virt-admin + + +%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/libvirt/libvirt-2.0.0/libvirt.logrotate b/libvirt/libvirt-2.0.0/libvirt.logrotate new file mode 100644 index 0000000..a609159 --- /dev/null +++ b/libvirt/libvirt-2.0.0/libvirt.logrotate @@ -0,0 +1,14 @@ +/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/libvirt/libvirt-2.0.0/libvirt.lxc b/libvirt/libvirt-2.0.0/libvirt.lxc new file mode 100644 index 0000000..81ea621 --- /dev/null +++ b/libvirt/libvirt-2.0.0/libvirt.lxc @@ -0,0 +1,15 @@ +/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/libvirt/libvirt-2.0.0/libvirt.qemu b/libvirt/libvirt-2.0.0/libvirt.qemu new file mode 100644 index 0000000..470ef8c --- /dev/null +++ b/libvirt/libvirt-2.0.0/libvirt.qemu @@ -0,0 +1,15 @@ +/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/libvirt/libvirt-2.0.0/libvirt.uml b/libvirt/libvirt-2.0.0/libvirt.uml new file mode 100644 index 0000000..1c26219 --- /dev/null +++ b/libvirt/libvirt-2.0.0/libvirt.uml @@ -0,0 +1,15 @@ +/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/libvirt/libvirt-3.5.0/libvirt.logrotate b/libvirt/libvirt-3.5.0/libvirt.logrotate new file mode 100644 index 0000000..a609159 --- /dev/null +++ b/libvirt/libvirt-3.5.0/libvirt.logrotate @@ -0,0 +1,14 @@ +/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/libvirt/libvirt-3.5.0/libvirt.lxc b/libvirt/libvirt-3.5.0/libvirt.lxc new file mode 100644 index 0000000..81ea621 --- /dev/null +++ b/libvirt/libvirt-3.5.0/libvirt.lxc @@ -0,0 +1,15 @@ +/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/libvirt/libvirt-3.5.0/libvirt.qemu b/libvirt/libvirt-3.5.0/libvirt.qemu new file mode 100644 index 0000000..470ef8c --- /dev/null +++ b/libvirt/libvirt-3.5.0/libvirt.qemu @@ -0,0 +1,15 @@ +/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/libvirt/libvirt-3.5.0/libvirt.uml b/libvirt/libvirt-3.5.0/libvirt.uml new file mode 100644 index 0000000..1c26219 --- /dev/null +++ b/libvirt/libvirt-3.5.0/libvirt.uml @@ -0,0 +1,15 @@ +/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/qemu/.gitignore b/qemu/.gitignore new file mode 100644 index 0000000..1878aa8 --- /dev/null +++ b/qemu/.gitignore @@ -0,0 +1,6 @@ +!.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/qemu/PKG-INFO b/qemu/PKG-INFO new file mode 100644 index 0000000..be89f19 --- /dev/null +++ b/qemu/PKG-INFO @@ -0,0 +1,19 @@ +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/qemu/README b/qemu/README new file mode 100644 index 0000000..687cb34 --- /dev/null +++ b/qemu/README @@ -0,0 +1,17 @@ +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/qemu/centos/build_srpm.data b/qemu/centos/build_srpm.data new file mode 100644 index 0000000..aeaa896 --- /dev/null +++ b/qemu/centos/build_srpm.data @@ -0,0 +1,8 @@ +SRC_DIR="$CGCS_BASE/git/qemu" +COPY_LIST="$CGCS_BASE/downloads/kvm-unit-tests.git-4ea7633.tar.bz2 \ + $FILES_BASE/* \ + $PKG_BASE/qemu/qemu_clean \ + $PKG_BASE/qemu/qemu_clean.service \ + $PKG_BASE/qemu/qemu-system-x86.conf" +TIS_BASE_SRCREV=c284b3d419e1cc9b1f25661f4f636f19b1399970 +TIS_PATCH_VER=GITREVCOUNT diff --git a/qemu/centos/files/80-kvm.rules b/qemu/centos/files/80-kvm.rules new file mode 100644 index 0000000..e61b48f --- /dev/null +++ b/qemu/centos/files/80-kvm.rules @@ -0,0 +1 @@ +KERNEL=="kvm", GROUP="kvm", MODE="0666" diff --git a/qemu/centos/files/85-kvm.preset b/qemu/centos/files/85-kvm.preset new file mode 100644 index 0000000..8024052 --- /dev/null +++ b/qemu/centos/files/85-kvm.preset @@ -0,0 +1,5 @@ +# 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/qemu/centos/files/95-kvm-memlock.conf b/qemu/centos/files/95-kvm-memlock.conf new file mode 100644 index 0000000..fc59dbe --- /dev/null +++ b/qemu/centos/files/95-kvm-memlock.conf @@ -0,0 +1,10 @@ +# 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/qemu/centos/files/99-qemu-guest-agent.rules b/qemu/centos/files/99-qemu-guest-agent.rules new file mode 100644 index 0000000..8a290ab --- /dev/null +++ b/qemu/centos/files/99-qemu-guest-agent.rules @@ -0,0 +1,2 @@ +SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", \ + TAG+="systemd" ENV{SYSTEMD_WANTS}="qemu-guest-agent.service" diff --git a/qemu/centos/files/README.rhel6-gpxe-source b/qemu/centos/files/README.rhel6-gpxe-source new file mode 100644 index 0000000..bff3160 --- /dev/null +++ b/qemu/centos/files/README.rhel6-gpxe-source @@ -0,0 +1,9 @@ +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/qemu/centos/files/bios-256k.bin b/qemu/centos/files/bios-256k.bin new file mode 100644 index 0000000000000000000000000000000000000000..07f2a309c5be4685f1dccdc621874b4d9d3034a1 GIT binary patch literal 262144 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

URR|ZeW5B5|-+m-X;oG187ce?5G*upM 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 literal 0 HcmV?d00001 diff --git a/qemu/centos/files/bridge.conf b/qemu/centos/files/bridge.conf new file mode 100644 index 0000000..a573665 --- /dev/null +++ b/qemu/centos/files/bridge.conf @@ -0,0 +1 @@ +allow virbr0 diff --git a/qemu/centos/files/build_configure.sh b/qemu/centos/files/build_configure.sh new file mode 100755 index 0000000..31d78a1 --- /dev/null +++ b/qemu/centos/files/build_configure.sh @@ -0,0 +1,118 @@ +#!/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 \ + --with-system-pixman \ + --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/qemu/centos/files/ksm.service b/qemu/centos/files/ksm.service new file mode 100644 index 0000000..35c6f1d --- /dev/null +++ b/qemu/centos/files/ksm.service @@ -0,0 +1,13 @@ +[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/qemu/centos/files/ksm.sysconfig b/qemu/centos/files/ksm.sysconfig new file mode 100644 index 0000000..d99656d --- /dev/null +++ b/qemu/centos/files/ksm.sysconfig @@ -0,0 +1,4 @@ +# 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/qemu/centos/files/ksmctl.c b/qemu/centos/files/ksmctl.c new file mode 100644 index 0000000..af39591 --- /dev/null +++ b/qemu/centos/files/ksmctl.c @@ -0,0 +1,77 @@ +/* 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/qemu/centos/files/ksmtuned b/qemu/centos/files/ksmtuned new file mode 100644 index 0000000..320ce74 --- /dev/null +++ b/qemu/centos/files/ksmtuned @@ -0,0 +1,138 @@ +#!/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/qemu/centos/files/ksmtuned.conf b/qemu/centos/files/ksmtuned.conf new file mode 100644 index 0000000..fc4518c --- /dev/null +++ b/qemu/centos/files/ksmtuned.conf @@ -0,0 +1,21 @@ +# 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/qemu/centos/files/ksmtuned.service b/qemu/centos/files/ksmtuned.service new file mode 100644 index 0000000..39febcc --- /dev/null +++ b/qemu/centos/files/ksmtuned.service @@ -0,0 +1,12 @@ +[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/qemu/centos/files/kvm-setup b/qemu/centos/files/kvm-setup new file mode 100644 index 0000000..14721bd --- /dev/null +++ b/qemu/centos/files/kvm-setup @@ -0,0 +1,31 @@ +#! /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/qemu/centos/files/kvm-setup.service b/qemu/centos/files/kvm-setup.service new file mode 100644 index 0000000..9c4bf97 --- /dev/null +++ b/qemu/centos/files/kvm-setup.service @@ -0,0 +1,14 @@ +[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/qemu/centos/files/kvm.conf b/qemu/centos/files/kvm.conf new file mode 100644 index 0000000..3f7842a --- /dev/null +++ b/qemu/centos/files/kvm.conf @@ -0,0 +1,12 @@ +# 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/qemu/centos/files/qemu-ga.sysconfig b/qemu/centos/files/qemu-ga.sysconfig new file mode 100644 index 0000000..f54018e --- /dev/null +++ b/qemu/centos/files/qemu-ga.sysconfig @@ -0,0 +1,19 @@ +# 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/qemu/centos/files/qemu-guest-agent.service b/qemu/centos/files/qemu-guest-agent.service new file mode 100644 index 0000000..44b11cd --- /dev/null +++ b/qemu/centos/files/qemu-guest-agent.service @@ -0,0 +1,18 @@ +[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/qemu/centos/files/qemu.binfmt b/qemu/centos/files/qemu.binfmt new file mode 100644 index 0000000..63a58f4 --- /dev/null +++ b/qemu/centos/files/qemu.binfmt @@ -0,0 +1,17 @@ +: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/qemu/centos/files/rhel6-e1000.rom b/qemu/centos/files/rhel6-e1000.rom new file mode 100644 index 0000000000000000000000000000000000000000..078d26087f8c74bfb5ecf4275cd715d7a807abea GIT binary patch literal 69120 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 literal 0 HcmV?d00001 diff --git a/qemu/centos/files/rhel6-pcnet.rom b/qemu/centos/files/rhel6-pcnet.rom new file mode 100644 index 0000000000000000000000000000000000000000..2805a0f93aef14fb0e88bb9f86d8ad29762eadb1 GIT binary patch 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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 literal 0 HcmV?d00001 diff --git a/qemu/centos/files/rhel6-rtl8139.rom b/qemu/centos/files/rhel6-rtl8139.rom new file mode 100644 index 0000000000000000000000000000000000000000..a5273e8d6a1d83670ba0363007d73614a8e5a66d GIT binary patch literal 54272 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

*@9cCZ;*#@v49^G^?1gYluDgeHz?yUXuvJe|21| z+|&u(y2FtOQ#qe}`BLVey9rkkG8z=&btV~>FK9bKrVHpCI_^9%*g`ob@N`dalg!Ps&t&lQ z%E2nH3)O#=QuFN1=&RILg%0OkKk_q-f(O5xX+ShI%>Mj96ts(3@Z{8}f6A$Ay|4O_ z2Ml(USf#b?EoJZ|_p^9#O1aI=%jHJbJC%|?qJYZJj?)Edpj`O$i2>FM2465ifOZ_f z8xH-L%kPJL!Gg=nZf(Krk63Q|TqmSE@Fbv3parj4=v)fMArVGp`4+?Hc1X{;I!D`! zm+Ukf%6DIzDsUDzR0>alr3-M;1?`LvsT1*%D0~xok#|VI4X_ifjaX(0P{+}Q;*Rzn z`TVTkB|$bdqt}+s-ROeS;Eo+TQKxHnF#pi~!C~1Uh%itUx zgpooa(u!rP0c6byI#|zz#|e3TnXSoNUTXFc#u?=3#LD1l3i_y&%u=W^W9&r~0UF&Z z$gRn}Blhd$#{+UwV{dB|V+jo#^Ak7(bF%=~dF{y{vI~Z2!8UXV%40vN^Q;V+jeWqr z@P^z_G*^9`RQ1DgLJ0?wqnBz%o84YYKc0$Ko4R3qMt5Ha(Z_7wYEiw}i)Hs>aeK%; zH)(J4o(m@p!Oo+|zAdNfG2)gDXLZI#nvOZsi^k#((EYjWCyO!W=OmP3?Un9o&n{wT zw+-x=wNKv-`lZ{;E6K~xzCmkP&tNSq$zn+2PLfz@{@9!nU58-bO1wp$JEq*eN%8F= ztP>4_Xi@aYr$fXO+7EM6*V~|#Mn?{QxI@fdHDp@;SqvixbUqdCGV3TL*t^BUk4ui! z6cjrghgS{n;OKJQg*sxG6Ais;o&A%i=~l+L33~{asub>IX(b(jHtc+piTbyI7a|P{ zvN~{uG$!EfsIP+vgs_Y%L4dNDPNEBW31x4+;(!|2^BGkrK6|KmR$`(GqSB9O*)zzS7%C2>Ip31n_n4cLE+Zd z?$}TgQjm@~1IHBX$yA?X{8RX4u=FzS)Mau@ZUkyelJQ}?0}}}v$zh+PXUlVm7o=62 zwi2BgI~RmvI}I#`E+em{!Ssd6a{u1e;v|scvbP!G&$K|~&EC1XEwLpYT9tiTPa|=? zHb*aA>X4o>@LJ|43|Q_Za0j4-_yW0oiF`l$v)wX8-PXnu4%fSRcd~~ILDeN_{PG}i z(J6REV-t2@rYFL@8b$BYSF4wLy#&!!f;$G`R$jhSA9m@Xc!L`kq6&A_dVeno7WgUz zKTIeJ{pQL3=KAX%!glx3oIQ3)G5Mqhc=Xn)XJ#u;Tc4?N9P8Y}@0!=1+F2)unwbo) zHF)pdJ*NA%@PT8NZn&fY1KcEfF|u;#%{A%vOZo(j$HrC>MDfx~PTY}eqvVXJGe-%! zbF5~}%n9VyryMVI(T?8(;+4C#=8EXHk;9wLW?lfTXnZM*7ay&}F8-bWy4nS1$Bd6h zZObdhi6I$y1dKl#QLFqfe(K?wxRi9MnNRU958>HaLO`C?F$@_)h-ch8$etUFP3h_L z#NEO&;MP1Z)`x|>m0<8q;(KZk9o%S*AIN{Pn*`@P*_M|Jkf$JMSk1;-5f z2>N+gcJCDn7_NWyJl%n8BBOfo+IsfMKPQ>`R{R7HgZhW`3(w^wV^-;RNJYI&sjT0G z&X~dDr^@9Px0@#|jNY_R5;9QzT8GnkvCbAh{emZx2hH|y>(nsWU!inc3^e4OX0yirTtKZ@}jE)XmjIwBFd<8-x z_W$^>cqvx@B*rYTjcHk75Oig#IPbDdXRR53C*%=?JR(irb>8?T@A67!Cv|V9w?WPH zUWjuh^UAr(XJ#l|H!FN<(q)m%zjbKv`A&&TZy*W>t}c5s&A`e|#z2_EX`qpnEkn)YNGAkkw|1pHHq9=A_f z%8!de)3XceN01ZWJDapDzC|HFx%}iyK&ckjoL>36cNNttuoNrM4Br%HkyH3QvfA}L z44u5Q3)!fhsJK*hD(dWzPtI$c=Vi?U-(u3Z8X2rPLOph@C1@&`f2$T)e|5R;W!Yoy zux8-dl28CGGJZ?y+5O^MSMy0P`56bd?Z)LJP(T|jWkjK%&7~838MB`+h;tqH7IHH6 zIlJa{Kc(6GtuCO1DkQh}oS=&1rw{SI%&#BZ z-X0&$BzLy>q5Dtt71NI$wh^ygHVEvw`NO_x!u-niG~0C%G39dEQ&asAZd)L zl&VAq|5LdLk>k$BJKv(+x>=99)IfbL9YQ*!UnnW2Xcl~TQY&3eMVPhT`)G1Dh;eW1 z1Z5y}T0N)RXdgcsKv0nlxQ*lqo+5i~>HTN5+BLP8Vgs`-Fv*RroWgw7#YjQLT^B}pi4 zONT-i;ZTRP%GZF!bw+HTg61p_T&`bj{_utkE>B(j_KsJ(b;C!Ao3|A{8o~Rh|;hG2~*2yT!l&((scz3g;?DzJ%fHH?mfm9z{(M z%nmp?qfnZER4oT9-L%6%!tL-@tA`1S(LYg^zbhbcn+pV9;L%Hw;4pNTZc<&t2UhxN zO{*L^r)>?k@rNsFhHuDRMmC~dU`3nX4|LS&lx0`cRi16A1--~~H+2=&O}(oX<8g#J zw+dXF{3pJTBvBwV(pcNk>3IIQvxNSvgClDN z$=s?Rvb0bKC-2NMWH%&Y_-WBJQ!NY(aiz%kn^!G;BrXX%i*T-!$kS@+7FO7QjK!d3 zurPZc4Ae4s95#2mCn)slgn|6-@Xk!hWLsYd;LmaRkS+TEafM<9W>MITVpRRjsO@Al`+oh5T0b5*spNzXKs%x{B)>Igv3p zJN{{fzs!l3qeC+|8GH6fvBu6%RPy${V)-k8$A!|DTfK&N$c#(<$VFFghYlhdyPD_5 zBU5glg4wjfuQ(GV7g@@-fA{1Fh4e>4%teEy_9(`Bk%g}8o(|8wiY*_7GC_S z;H~z{S@Ccislcpy_-0GFt90bZAtnF4l7?#loc&XtaH-WN&c_ZM`u4gf6FJm@$>BcH z0<_{r$8jWq^FDVpCf(^@()C^eYXb5cQX13>cw?oIgiUn@d*h0HpHH3lsOG3D80-D$ zo#GO8joY*0;XDBx$L{8VFo|raBsB|l_Vit*Si@r*I#Ugzw|p+z7HiC|!J;a+La8R|a8{0XPwl7e<8Q(1 zvYQehrnzBcQndxl6YY8I$*6MtmVtJj-WPB|?TKG|@V8u88t%q+1)k>ECe5jjYCxe) zA>F^UWWMJEluK=8dhsfg3};CO>H1dDzb^&ahJUl%9xUymBqe@hVBTG?eQN!^mx*#vJXpWfBJPr`6AR&LvxvlwnL}l89V4Ts=25Cr2Z-t z=v~zz`Q`o!FI56%`kz*3tBt(W>w=rgvLgDUZ+GuMamCX@e7E)d&EJVt!}~WlW~^h8 zW2Hnt=W?747#rZl9d_DXb5kzo^gAnAZ5PtR%@H|1hQpn0hr6Qme=2doL6>`K{^xFn zA=8KPvvPigVeWsXJ}cM^G`b6tE392NbIj@QQ_;?|QDvQv{NbJ>5v6cZC;7QT~pb=M8%(ya)6^8uQH zH>II#%bt(DjJgrsh|R1v$xq*Y*|Ka&BXh`;d?yw}w*@6hQc0A0H6>Ak-h3-G6W8p9 zwl)VDGKkf(#e%ks2;bzWPgjiKKB{t*BLw0vNneA2^T%*sTtQhm+wM7@iWL2>@?3tHKzEZ- zn|((nv6sjr{WNIT>CE(qb;=DZk#Kpl_v&80_w$!lP2UNsVmqsDpDw%3Fo8H8WFu;9 zR1-gUs(&>|NGMt8MA}`6yR|I48QWMVoxx)wE>(_}W4ykrdJi}Fl?!hj;h-R`YwQ_C z-FBi)hWlI3Y4Gusd|vk1dOP}<{3h*t!D3_c%+2ph^1gjma5ickOCS`hFl7x!@~Uc= zsUe8dGI7|`y8WhIezzkHQEAcnW)}|>ZeRR4eRI}=6hmALq7nVXwreD%s;YuYvS+^b zw^UvPuT4@k5=fin?JoGl4#aV(reinob8q28eur}~X>rUC?uWfvGElmlVT)fTrpeN! zU}ezBL7Ne|QA<2iS!h=IDpzPpKNh+$^{(0BXVZr2?}@25lf+{$ax24gW#5Uhe)ykH zDcO4id=zG?mXKfLEiiafYB<#VE~Iq3g5yJCK+x1#XZ_FNoFx2xVm)5oAyxG#XmF&& z3Ln2X{i}7HVbGdzLNO0hNSvFy+gs>mZr&V93_-CZAYHqVX&v?v_=rq64 zYJ1-To6~NeaB9cVi)sVP0oVacO)Y=BI2KADDM|nNYRCz*L;K?LC+b0$1+@#`3Up$0 zIZ6=(*&BzeaH{g#G%|zYUbS~U(cQ>)&4Z{E_$!U-yH#MG+1W?g4>i1cZX0K*or1%C zlU!*S+6)ee+m%z9{?Ge~iD;J>w&w}Z2#YgmzphBbc5(AGsxU};*o(k$l_>Ejjnv4P z9I2Z(FiP1CYb7TkgjH}pzAjuZ`Iz!r4~h;22zm;lcScn0H9A__Qj9K1|1@*u>?QJeUgynO!(-IT*Qpu;81||Don%z>|D+IoId#%s21n$#{(Fc6;{`I=Q_wp**PMmiHiInqn=~Z*1s4pehJ!9Ow3S6(5p4U zQ%|YJaP-1WfmOc%Bmb;>-|a$3^X$co+r@4oW7*I6%%HQOHylpcv);7q`au{op%)4Ws7tcR$fMYH^u8r6-%l_m>cBvN|i#&RS z2>=%8&2HnAD;lSlb-L{D`VOfC4W~MQQXI|ZIuXE$+mwP@^P({+&*|IA zEXv)68qWw*`g*o?-DLSK&{RjE@iO7nw$u}Zx+~^lI`g;b1_8WfIM;P}<{YN2k2i{` zQX&TAEGyQBb;nw>=jxpyuEndn;h(h_-elx^NI${r^OM zhhZu`$O7&pudvpM^Lh)B?~{b#oBL+f(x(F)Zy_$vt_y{b!r&?!F2bw9+fGq?x)T-t z+#NDc`p|xs!w)bbz;TRM=u62lRErw|!%d!6?Ylvxq9Uw{qw4Hv;r#ZuFF$z5>soWEeT?yl>9M&RU^?zkQSUIw9pVFh(}0D z+*%s{abX^3vBlm@5cV0Lchi~>dL=>X&MjvO4wsWX{|a#;&(LaXwd=pdf5vK#rda-( z3Uw*-M>@2IyFEDvS0#Bui=7RiF>WmBd7Qj7GTT`;6=Q?ea5RPNJ*I4$Dhn4&Q>vfg zt{XgM`pfOaB!mnVJofzd84gt5iZk0~gHE*(Q;nO!SaaPVlnxmET*SL0`|LH7O>EfT zmb*GjWi{bMOLNm6pWyU_jYg@~E@io_DPuFI* zPRwg&UoT;e4mxsONge~Z5npb=qh#s*uiRh@+7RjwOW z3(u(?q3H=AM8d~C9WMj5Ad4_3V!TekM+Y!_l~}vQDyXo)^Lgzp|N0E=r^iBqWZTGt z;~nxH*LHpd%-z~jmu?xMXl#WGmc8Ful)DBf4vq#zF05{I~4xu1G8mt%}%ZfZz^ zxyuq^?m&Izhxz#>%uv~7Xl*`eF2RRjb9Yc@X99E63sr*bxhM@b@c{9+61~|^{Ub_B z03&olC3W5XF=4)y6=PEup+3>IQeJi2lv$p0Sf!mUsMu;Y&65;opJ!0FXSV<@eU6l0 zR~pVAuqNJAI73hMQ6dU(yY9?Cue{;llhGFD*qUoU%z&Ssx?%9?vdNOfu4BeAPRFJ5 z3}>6ox-Iji0z)6mEJ#@jV^%gC|~f#dA#4~>fG8qY8345ycst3 z{&Rxn_kus-QPK9Y#e;-^I=pSEPfhbog+UEg46z1JXXNZlSr>c3 zCN#lm(&vU`?M>n^A z`nr$uT=n_TM~=)LnX{o*&orZcFyc}W3YhYAIEIvJl5%dsw=eW{ml);zdR3dGn`m05 z%5905w|gn$vQzKkj(z1MDaMD(6E79&UP=WVA(*sqIzp5r-qb)w>Wx{5#%um;X)gO? zAlrU_Oq&O~3Gr-ev{6f+`HN?5NF}l>wL$fflLk^lf1Egq@c^mTxAchb3*n~&V z-$^ZNAaRmZ(Yo_w;jQML!Tjf$INdj&mil=cs%mcp`zl8l#dLe@n=+xbI>u?yz^M$& z-ny{sYJs<4nG*M;YSv%g=o0Auuw7#-a^4Ng9N}`Mjp4=P8cuUpJQ)GUwkvlVr~blcdkwjoJmmZjOgnYKQ4suS?yn2{@@b z)gXo&ntN_CBQW7?J$26Jl6~&rXB-+;5jK9WU2wh?owHh@rnR7$*j2Z#`ln5C!IqE< z=|AQ`f)!FM?OD9d$ZJG)5W!_v9PdNEPRtI9;p;y^3gaI_&x*l2(N_aT`yEcN`K`2# z`2#h(TEOi5cH*l&{8`o>bt!tajFVjRD*Fu&`gD{ka97#-)vCpD=|fkTgl5y1m@@l< zt-mQeh3t_}7CYP(dR*2MNiBXZYqx{`G#r%+Trh(qj+19kIKw+{{kqqcr=gF37-ryl zRH6JKTxM8vf1{E(QcniJii;W0o+QcaI|5_zgIak5{t!ZYW&~-b*x*9^H_qX!Tjlkk zvj#U7Hj5$fba+5lX5%pEqdcWzNtcswPSkz|nJxHk7v{4aB#YrguKG?-aL+t?{%JT9 z-}p`G6!AXpX*i}K?q+hml3Qh8q`IAIE6F$2NJZVCDh8g)ene=vud;=>thADGghba$ z?>Y=aPO+=d{uyFL8k?6G)T)&2VFg)EE9sb8jAFL!0fu6_oon`k(V*o)&L*pre-B$v zPFCq{dD=me^|%rl;Hhrhx&PO&RY2$kda|r}V+T%38Jo}-*jjh0XBNKshq&n?gcnpn zjyh~7J6+&cs_^dcJ`Ik!Rz#1K%pb@^OKEV5z-A^+3*$Mz_JV#XxhcVOA|00^Ipxi@ zfAv`YW|7ToD}1nSKp*^ZiYiXd^cwu+ZoagXzBxc^FWlgwdwIQe~XMrQ40B{(I@~PCbu5 zaUMR8`0z=IXt*2>b1liUs*nzsZb4oOZt$QouI zX_^gv;vTC)-m*UX-MxBXi%zhm_g?9S{`#9Rr3i!u31{it^gG|lnA%{30Xv!vvmLjw zQX94?L*NZI=$%t~vQvs({}{OB9R+ne;-5LfSJy+9D6CGBAKh}>LR{!PXJ5%0{5x8X zs>9&5=vZmog*hODbpu=Ch+^=0#-TSoei8~?tw+wba- z;I2%B*^{%C!7@#atzVA?22}cD==&s@Yc+AvR2>~n+}0SWeHy!-ZIV<3{ZuNe(Nx|8 zcR1DE#)b5D4atX& zju7rn>6~WcBZXrwuLhQg+}#e-rOaDi&oe0(^GE}^A? z!t|DW?JHUAjOi?>4&nBB&80iqE97>$=Vrzx&pAe-k9_VK*Qtd|pC5gqAt9@cS~P*_ z4$1i}6GoIEnfy}=gn9{+zVkT?Vp(#?sdCdr0k;10I;Q=Kk1N$C37t4c#O>7miD^g$ z9u0kS%}}oi&$8}MoaXrC$#xun55)gQfV+L?w?CoU_|_iJbF$a89?m^CbVL1!c=-nI z(&rjII~hTwn4-kT#uWSLfbR$D*O=m*EpHc3I3-_q7Z4>KC7H2Xm}NV6C$URySR_~B z0xSW4B4wNFbzAwAkNJzppBT~%{fKQPy;VcLPKSXpYI?-5g2k!+2RPT{uq>dMqM6~&l7E@vR|uxHe0AJV|V5* z|B@Mudxrj`Ckq9h)9hI4;Vqx*NWLR9F966+Fze1lNhK#}xD0oO55xRQK?vmq0pc0r zak^$563%uFAy;J1Lkc`d;=8^p)ImSLnfl_oDf2flpuI(Y6WRKz|!YvQ1_0hb@AJCF$}!>rs)^A|hr%OCjQ2QkZD{Q)z+ zthXG*gS)Y9ruHg}3k54lVHGOL< z|K`VTBL5o8UEeKFUsD~>xBWfyr^^wmQg~J%X;=Q<^^R*HKDOE&j(;+B@2$^fpL}pu z5OW?p-^6{oXI>D_YM~Ymey4YXUlX;TX2=JAlq%lgcLTyF_RH`eDnjapElUg=6$7Xa zJ?ZC-9WKz%6K@CZR$sm2g~GNY~EzV5qZeh zh^nfu@s*pFoeI0ZI(DLwqzW>_+X#5Ny5*2NN4(_ zH6gHNt=(W>p1}p71*T%MV@rZWH_Mu=v~iYDECq{Q?zk-B8%-;T6-Y@BoRE`-6viGE z`{bJakWIA56(W7$(K^-_QKq&8_OO$w((@!f-Xd-7ccfJeCOx`3OTNCca zzL%aNTQ-mz=08boD7URsl+8g}rI0U%w)2s62PN7hgf5K;yO5!0;k6k=vgT3AJ&AiN zSLzBY=ERiiiE*H`I$goo!MO1Bg`iCbd{wJ?3B8_txrglKoHSz_mx6zP%`Ex<(a&l9 z0nvxldpQ0!gU8*mq%680Nc1^-T*}_*{d&`SR%RPbS~e#!7gr;UuZhu6V|^)EZ+U*B zw=8Hd+mt6>NU4l9Ojk+Y)s6`X>hW4VhtjwICI)%kQOh}Ey_{lGr(3Hj{pLH`mF0Pj zH}<(EXBMve15L^G?Sh4So7eOecpT7`_Mq4I)8Ch#Ss$rkvqz;xOYQRtW^}a%gVxKY z;oO`&Gb$|D$7y!*n1x)n@9oGScq#>)xN-D#%}-8BN?etvyqG|X&hC{s056S&1*vxACEc=m;u3sdXmQB@0Swp zGk_83vR9%`a2r0aS#GCS+5;5JO7u0)ag`W!$#<@0^@QUpRs)HwF9fQLw=E4QBgEyi z&cdq+?|1Y!4E;R|a)*o1oobl1L&ktjik!tVsn z>fI<|H&yW{$$@PU67iOOebr6)K}m5F<

^ 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

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

;N6H 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 literal 0 HcmV?d00001 diff --git a/qemu/centos/files/rhel6-virtio.rom b/qemu/centos/files/rhel6-virtio.rom new file mode 100644 index 0000000000000000000000000000000000000000..fa24faee741da179812b13a38c10cad14b7083ef GIT binary patch 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 + +#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 + +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 README.systemtap 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 + +%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 \ +%{_datadir}/%{pkgname}/systemtap/conf.d/qemu_kvm.conf \ +%{_datadir}/%{pkgname}/systemtap/script.d/qemu_kvm.stp + +# WRS: Disable traces +# %{_datadir}/systemtap/tapset/qemu-kvm.stp +# %{_datadir}/systemtap/tapset/qemu-kvm-simpletrace.stp + +%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}/README.systemtap +%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/%{pkgname}.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 +%{_mandir}/man1/qemu-img.1* +%{_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/qemu/qemu/qemu-system-x86.conf b/qemu/qemu/qemu-system-x86.conf new file mode 100644 index 0000000..b00377d --- /dev/null +++ b/qemu/qemu/qemu-system-x86.conf @@ -0,0 +1 @@ +options kvm-intel nested=1 diff --git a/qemu/qemu/qemu_clean b/qemu/qemu/qemu_clean new file mode 100644 index 0000000..ddb19fc --- /dev/null +++ b/qemu/qemu/qemu_clean @@ -0,0 +1,41 @@ +#!/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/qemu/qemu/qemu_clean.service b/qemu/qemu/qemu_clean.service new file mode 100644 index 0000000..11e07d4 --- /dev/null +++ b/qemu/qemu/qemu_clean.service @@ -0,0 +1,14 @@ +[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/qemu/scripts/autopatch.sh b/qemu/scripts/autopatch.sh new file mode 100755 index 0000000..ebc59af --- /dev/null +++ b/qemu/scripts/autopatch.sh @@ -0,0 +1,26 @@ +#!/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 diff --git a/virt/libvirt-python/PKG-INFO b/virt/libvirt-python/PKG-INFO new file mode 100644 index 0000000..291d8d4 --- /dev/null +++ b/virt/libvirt-python/PKG-INFO @@ -0,0 +1,14 @@ +Metadata-Version: 1.1 +Name: libvirt-python +Version: 1.2.17 +Summary: The libvirt virtualization API python2 binding +Home-page: +Author: +Author-email: +License: LGPLv2+ + +Description: +The libvirt-python package contains a module that permits applications +written in the Python programming language to use the interface +supplied by the libvirt library to use the virtualization capabilities +of recent versions of Linux (and other OSes). diff --git a/virt/libvirt-python/centos/build_srpm.data b/virt/libvirt-python/centos/build_srpm.data new file mode 100644 index 0000000..8aeb553 --- /dev/null +++ b/virt/libvirt-python/centos/build_srpm.data @@ -0,0 +1 @@ +TIS_PATCH_VER=1 diff --git a/virt/libvirt-python/centos/meta_patches/0001-Update-package-versioning-for-TIS-format.patch b/virt/libvirt-python/centos/meta_patches/0001-Update-package-versioning-for-TIS-format.patch new file mode 100644 index 0000000..e84ba12 --- /dev/null +++ b/virt/libvirt-python/centos/meta_patches/0001-Update-package-versioning-for-TIS-format.patch @@ -0,0 +1,28 @@ +From 1f430bb5fbae2d5135ad4e547de3ac30f32b299b Mon Sep 17 00:00:00 2001 +Message-Id: <1f430bb5fbae2d5135ad4e547de3ac30f32b299b.1502820262.git.Jim.Somerville@windriver.com> +From: Jim Somerville +Date: Tue, 15 Aug 2017 14:04:06 -0400 +Subject: [PATCH 1/1] Update package versioning for TIS format + +Signed-off-by: Jim Somerville +--- + SPECS/libvirt-python.spec | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/SPECS/libvirt-python.spec b/SPECS/libvirt-python.spec +index c2ad17f..6108b7e 100644 +--- a/SPECS/libvirt-python.spec ++++ b/SPECS/libvirt-python.spec +@@ -7,7 +7,7 @@ + Summary: The libvirt virtualization API python2 binding + Name: libvirt-python + Version: 3.5.0 +-Release: 1%{?dist}%{?extra_release} ++Release: 1%{?_tis_dist}.%{tis_patch_ver} + Source0: http://libvirt.org/sources/python/%{name}-%{version}.tar.gz + Url: http://libvirt.org + License: LGPLv2+ +-- +1.8.3.1 + + diff --git a/virt/libvirt-python/centos/meta_patches/PATCH_ORDER b/virt/libvirt-python/centos/meta_patches/PATCH_ORDER new file mode 100644 index 0000000..91f9a80 --- /dev/null +++ b/virt/libvirt-python/centos/meta_patches/PATCH_ORDER @@ -0,0 +1 @@ +0001-Update-package-versioning-for-TIS-format.patch diff --git a/virt/libvirt-python/centos/srpm_path b/virt/libvirt-python/centos/srpm_path new file mode 100644 index 0000000..6562d6c --- /dev/null +++ b/virt/libvirt-python/centos/srpm_path @@ -0,0 +1 @@ +mirror:Source/libvirt-python-3.5.0-1.fc24.src.rpm