--- kvm-84+dfsg.orig/scripts/qemu-ifup
+++ kvm-84+dfsg/scripts/qemu-ifup
@@ -1,5 +1,9 @@
#!/bin/sh
-switch=$(/sbin/ip route list | awk '/^default / { print $NF }')
+# NOTE: For this script to operate properly, it is expected that
+# you have a br0
+
+BRIDGE=br0
+
/sbin/ifconfig $1 0.0.0.0 up
-/usr/sbin/brctl addif ${switch} $1
+/usr/sbin/brctl addif $BRIDGE $1
--- kvm-84+dfsg.orig/debian/10-kvm.fdi
+++ kvm-84+dfsg/debian/10-kvm.fdi
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+ access_control
+ /dev/kvm
+ virt-hardware
+
+
+
--- kvm-84+dfsg.orig/debian/kvm.install
+++ kvm-84+dfsg/debian/kvm.install
@@ -0,0 +1,12 @@
+etc/kvm/kvm-ifup
+etc/kvm/utils/kvm
+usr/bin/*
+usr/share/bug/kvm
+usr/share/doc/kvm/*
+usr/share/kvm/*
+usr/share/kvm/keymaps/*
+usr/share/man/man1/*
+usr/share/man/man8/*
+../../debian/source_kvm.py usr/share/apport/package-hooks/
+../10-kvm.fdi usr/share/hal/fdi/policy/10osvendor/
+../org.freedesktop.hal.kvm.policy usr/share/PolicyKit/policy/
--- kvm-84+dfsg.orig/debian/kvm-source.install
+++ kvm-84+dfsg/debian/kvm-source.install
@@ -0,0 +1,2 @@
+usr/share/bug/kvm-source
+usr/src/*
--- kvm-84+dfsg.orig/debian/postinst
+++ kvm-84+dfsg/debian/postinst
@@ -0,0 +1,44 @@
+#!/bin/sh
+# postinst script for kvm
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * `configure'
+# * `abort-upgrade'
+# * `abort-remove' `in-favour'
+#
+# * `abort-remove'
+# * `abort-deconfigure' `in-favour'
+# `removing'
+#
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ configure)
+ # Add the kvm group unless it's already there
+ if ! getent group kvm >/dev/null; then
+ addgroup --quiet --system kvm || true
+ fi
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
--- kvm-84+dfsg.orig/debian/kvm-ok
+++ kvm-84+dfsg/debian/kvm-ok
@@ -0,0 +1,24 @@
+#!/bin/sh -e
+#
+# kvm-ok - check whether the CPU we're running on supports KVM acceleration
+# Copyright (C) 2008 Canonical Ltd.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2,
+# as published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+if egrep "flags.*:.*(svm|vmx)" /proc/cpuinfo > /dev/null; then
+ echo "KVM acceleration can be used"
+ exit 0
+else
+ echo "KVM acceleration can NOT be used"
+ exit 1
+fi
--- kvm-84+dfsg.orig/debian/README.source
+++ kvm-84+dfsg/debian/README.source
@@ -0,0 +1,8 @@
+This package uses the quilt patch system as documented in the Debian quilt
+package (/usr/share/doc/quilt/README.source).
+
+To update this package to a new upstream version, some binary files must be
+removed from the upstream tarball.
+The get-orig-source target in debian/rules will download and clean the tarball
+for the current version (according to debian/changelog). To get a newer
+version, first update the changelog and then run get-orig-source.
--- kvm-84+dfsg.orig/debian/README.Debian
+++ kvm-84+dfsg/debian/README.Debian
@@ -0,0 +1,45 @@
+KVM for Debian
+--------------
+
+Please see ./README for a description of the kvm software.
+
+The Debian kvm source package provides two packages,
+
+ 1) kvm, which the provides the userspace daemon
+ 2) kvm-source, which provides the source for the kernel modules
+
+Linux 2.6.22 and later include kvm modules which are compatible with this kvm
+package.
+
+If you want to use the current features you need to install the kvm-source
+package, build the kernel modules as described below and then install the
+newly built modules package.
+
+Without the kernel modules KVM will be very slow. When KVM is operating at
+full speed, the virtual machine window title will say "QEMU/KVM". If
+the KVM modules are not installed or the user has no write access to
+/dev/kvm, the window title will just say "QEMU" and the virtual PC
+will be very slow.
+
+The kvm-source package can be used in several ways, once it has been
+installed:
+
+ - If the module-assistant package is installed, the KVM kernel
+ modules can be automatically built, packaged and installed
+ with a single command. Simply become root and run the command:
+
+ # module-assistant auto-install --force kvm
+
+ or just:
+
+ # m-a a-i --force kvm
+
+ - Using the make-kpkg(1) command provided by the kernel-package Debian
+ package. This will produce a corresponding kvm-modules package for
+ the Debian kernel-image package that you are using. This is "the Debian
+ way". See the "modules_image" section of the make-kpkg(1) man page.
+
+ - Changing to the /usr/src/modules/kvm/ directory and building as
+ the README file instructs using "make; make install". This will build
+ and install a module specific to the system you are building on and is
+ not under control of the packaging system.
--- kvm-84+dfsg.orig/debian/dkms.conf
+++ kvm-84+dfsg/debian/dkms.conf
@@ -0,0 +1,14 @@
+PACKAGE_NAME="kvm"
+PACKAGE_VERSION="79"
+AUTOINSTALL=yes
+CLEAN="make clean KERNELDIR=$kernel_source_dir"
+MAKE="make KERNELDIR=$kernel_source_dir"
+BUILT_MODULE_NAME[0]="kvm"
+BUILT_MODULE_LOCATION[0]="x86/"
+BUILT_MODULE_NAME[1]="kvm-intel"
+BUILT_MODULE_LOCATION[1]="x86/"
+BUILT_MODULE_NAME[2]="kvm-amd"
+BUILT_MODULE_LOCATION[2]="x86/"
+DEST_MODULE_LOCATION[0]="/kernel/updates"
+DEST_MODULE_LOCATION[1]="/kernel/updates"
+DEST_MODULE_LOCATION[2]="/kernel/updates"
--- kvm-84+dfsg.orig/debian/copyright
+++ kvm-84+dfsg/debian/copyright
@@ -0,0 +1,56 @@
+This package was debianized by Baruch Even on
+Tue, 14 Nov 2006 20:49:57 +0200.
+
+It was downloaded from http://kvm.qumranet.com/
+
+The source tarball has been repackaged to remove the elpin vgabios. Use
+debian/rules get-orig-source to produce a clean source tarball.
+
+Upstream Author: Yaniv Kamay
+ Avi Kivity
+
+Copyright: Copyright (C) 2006 Qumranet, Inc.
+
+License:
+
+KVM Kernel module:
+
+ * This work is licensed under the terms of the GNU GPL, version 2. See
+ * the COPYING file in the top-level directory.
+
+KVM User code:
+
+ Copyright (C) 2006 Qumranet.
+
+ The files in this directory and its subdirectories are licensed under the
+ GNU LGPL, version 2.
+
+QEMU:
+
+ The following points clarify the QEMU licenses:
+
+ 1) The QEMU virtual CPU core library (libqemu.a) and the QEMU PC
+ system emulator are released under the GNU Lesser General Public
+ License.
+
+ 2) The Linux user mode QEMU emulator is released under the GNU General
+ Public License.
+
+ 3) QEMU is a trademark of Fabrice Bellard.
+
+BIOS files in QEMU:
+
+ bios.bin: Copyright (C) 2002 MandrakeSoft S.A. This file is
+ licensed under the GNU LGPL, version 2, or (at your option)
+ any later version. Homepage: http://sourceforge.net/projects/bochs
+
+ vgabios.bin and vgabios-cirrus.bin: (C) 2003 the LGPL VGABios
+ developers Team. These files are licensed under the GNU LGPL,
+ version 2, or (at your option) any later version. Homepage:
+ http://savannah.nongnu.org/projects/vgabios
+
+The Debian packaging is:
+ (C) 2006, Baruch Even
+ (C) 2006, 2007 Leonard Norrgard
+ (C) 2007 Jan Luebbe
+It is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
--- kvm-84+dfsg.orig/debian/rules
+++ kvm-84+dfsg/debian/rules
@@ -0,0 +1,318 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+#
+# This version is for a hypothetical package that can build a kernel modules
+# architecture-dependant package via make-kpkg, as well as an
+# architecture-independent module source package, and other packages
+# either dep/indep for things like common files or userspace components
+# needed for the kernel modules.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+ifeq (i386,$(shell dpkg-architecture -qDEB_BUILD_ARCH))
+ BUILD_CPU = i386
+ QEMU_EXE = qemu-system-x86_64
+ pcbios_targets =
+ qemu_targets = bios vgabios
+ needed_bios_files = bios.bin vgabios.bin vgabios-cirrus.bin \
+ pxe-e1000.bin pxe-ne2k_pci.bin pxe-pcnet.bin pxe-rtl8139.bin \
+ extboot.bin
+endif
+ifeq (lpia,$(shell dpkg-architecture -qDEB_BUILD_ARCH))
+ BUILD_CPU = i386
+ QEMU_EXE = qemu-system-x86_64
+ pcbios_targets =
+ qemu_targets = bios vgabios
+ needed_bios_files = bios.bin vgabios.bin vgabios-cirrus.bin linux_boot.bin \
+ pxe-e1000.bin pxe-ne2k_pci.bin pxe-pcnet.bin pxe-rtl8139.bin \
+ extboot.bin
+endif
+ifeq (amd64,$(shell dpkg-architecture -qDEB_BUILD_ARCH))
+ BUILD_CPU = x86_64
+ QEMU_EXE = qemu-system-x86_64
+ pcbios_targets =
+ qemu_targets = bios vgabios
+ needed_bios_files = bios.bin vgabios.bin vgabios-cirrus.bin \
+ pxe-e1000.bin pxe-ne2k_pci.bin pxe-pcnet.bin pxe-rtl8139.bin \
+ extboot.bin
+endif
+ifeq (ia64,$(shell dpkg-architecture -qDEB_BUILD_ARCH))
+ BUILD_CPU = ia64
+ QEMU_EXE = qemu-system-x86_64
+ pcbios_targets = linux_boot.bin
+ qemu_targets = bios vgabios
+ needed_bios_files = bios.bin vgabios.bin vgabios-cirrus.bin linux_boot.bin \
+ pxe-e1000.bin pxe-ne2k_pci.bin pxe-pcnet.bin pxe-rtl8139.bin \
+ extboot.bin
+endif
+ifeq (powerpc,$(shell dpkg-architecture -qDEB_BUILD_ARCH))
+ BUILD_CPU = ppcemb
+ QEMU_EXE = qemu-system-ppcemb
+ pcbios_targets = bamboo.dtd
+ qemu_targets =
+ needed_bios_files = bamboo.dtd ppc_rom.bin
+endif
+
+# Removing binary blobs
+unwanted_bios_files = ppc_rom.bin openbios-sparc32 video.x openbios-sparc \
+ openbios-sparc64 bios.bin vgabios.bin vgabios-cirrus.bin bamboo.dtb \
+ pxe-e1000.bin pxe-ne2k_pci.bin pxe-pcnet.bin pxe-rtl8139.bin
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+ CFLAGS += -O2
+endif
+
+config.status: configure
+ dh_testdir
+ # Add here commands to configure the package.
+ ./configure --prefix=/usr --disable-blobs --audio-drv-list="oss alsa sdl pa" --audio-card-list="ac97 es1370 sb16 cs4231a adlib gus"
+
+
+build-arch: patch config.status build-arch-stamp
+build-arch-stamp:
+ dh_testdir
+
+ # Add here command to compile/build the package.
+ $(MAKE) qemu user ${qemu_targets}
+ for i in $(pcbios_targets); do \
+ $(MAKE) -C qemu/pc-bios $$i; \
+ done
+
+ touch $@
+
+build-indep: patch config.status build-indep-stamp
+build-indep-stamp:
+ dh_testdir
+
+ # Add here command to compile/build the arch indep package.
+ # It's ok not to do anything here, if you don't need to build
+ # anything for this package.
+ #docbook-to-man debian/kvm.sgml > kvm.1
+
+ touch $@
+
+build:
+
+clean: unpatch config.status
+ dh_testdir
+ #dh_testroot
+ rm -f build-arch-stamp build-indep-stamp
+ #rm -rf qemu/$(BUILD_CPU)-softmmu
+ rm -f config.sub config.guess
+
+ # Add here commands to clean up after the build process.
+ $(MAKE) -C bios clean bios-clean
+ $(MAKE) -C vgabios clean
+ $(MAKE) -C qemu/pc-bios clean
+ $(MAKE) -C qemu distclean
+ $(MAKE) clean
+ rm -f qemu/pc-bios/*.bin extboot/*.o extboot/extboot.img extboot/extboot.bin extboot/signrom config.mak user/config.mak user/test/lib/.*.d user/test/lib/*/.*.d kernel/config.kbuild vgabios/*bin bios/acpi-dsdt.aml #vgabios/vbetables.h vgabios/vgabios.txt vgabios/vgabios.debug.txt vgabios/vgabios.cirrus.txt vgabios/vgabios.cirrus.debug.txt vgabios/*.bin vgabios/vbetables-gen vgabios/biossums
+
+
+ dh_clean
+
+ifneq "$(wildcard /usr/share/quilt/quilt.make)" ""
+include /usr/share/quilt/quilt.make
+endif
+
+install: build-arch
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Build & install normally
+ $(MAKE) -C libkvm DESTDIR=$(CURDIR)/debian/tmp install
+ $(MAKE) -C qemu DESTDIR=$(CURDIR)/debian/tmp install
+
+ # e1000-82540em 0x8086,0x100e Intel EtherExpressPro1000 82540EM
+ if [ -e /usr/share/etherboot/e1000-82540em.zrom.gz ]; then \
+ zcat /usr/share/etherboot/e1000-82540em.zrom.gz > \
+ qemu/pc-bios/pxe-e1000.bin; \
+ fi
+ # rtl8029 0x10ec,0x8029 Realtek 8029
+ if [ -e /usr/share/etherboot/rtl8029.zrom.gz ]; then \
+ zcat /usr/share/etherboot/rtl8029.zrom.gz > \
+ qemu/pc-bios/pxe-ne2k_pci.bin; \
+ fi
+ # pcnet32 0x1022,0x2000 AMD PCnet/PCI
+ if [ -e /usr/share/etherboot/pcnet32.zrom.gz ]; then \
+ zcat /usr/share/etherboot/pcnet32.zrom.gz > \
+ qemu/pc-bios/pxe-pcnet.bin; \
+ fi
+ # rtl8139 0x10ec,0x8139 Realtek 8139
+ if [ -e /usr/share/etherboot/rtl8139.zrom.gz ]; then \
+ zcat /usr/share/etherboot/rtl8139.zrom.gz > \
+ qemu/pc-bios/pxe-rtl8139.bin; \
+ fi
+
+ # Install relevant files manually
+ for i in $(needed_bios_files); do \
+ install -D -m 0644 qemu/pc-bios/$$i $(CURDIR)/debian/tmp/usr/share/kvm/$$i; \
+ done
+
+ # Collisions with the qemu package
+ mv $(CURDIR)/debian/tmp/usr/bin/$(QEMU_EXE) $(CURDIR)/debian/tmp/usr/bin/kvm
+ mv $(CURDIR)/debian/tmp/usr/bin/qemu-img $(CURDIR)/debian/tmp/usr/bin/kvm-img
+ mv $(CURDIR)/debian/tmp/usr/bin/qemu-nbd $(CURDIR)/debian/tmp/usr/bin/kvm-nbd
+ mv $(CURDIR)/debian/tmp/usr/share/man/man1/qemu-img.1 $(CURDIR)/debian/tmp/usr/share/man/man1/kvm-img.1
+ mv $(CURDIR)/debian/tmp/usr/share/man/man1/qemu.1 $(CURDIR)/debian/tmp/usr/share/man/man1/kvm-qemu.1
+ mv $(CURDIR)/debian/tmp/usr/share/man/man8/qemu-nbd.8 $(CURDIR)/debian/tmp/usr/share/man/man8/kvm-nbd.8
+
+ install -D -m 0755 scripts/qemu-ifup $(CURDIR)/debian/tmp/etc/kvm/kvm-ifup
+ install -D -m 0755 debian/reportbug-hook.sh $(CURDIR)/debian/tmp/usr/share/bug/kvm
+
+ # Upstream does this though it is wrong for Debian, but installing it
+ # properly with dh_py* would makes it clash with the binary /usr/bin/kvm
+ # This seems likely to change in coming versions as upstream also
+ # has /usr/bin/kvm.
+ install -D -m 0755 kvm $(CURDIR)/debian/tmp/etc/kvm/utils/kvm
+
+ # Install the userspace utilities
+ install -m 0755 kvm_stat user/kvmctl user/kvmtrace user/kvmtrace_format \
+ $(CURDIR)/debian/tmp/usr/bin/
+
+ install -D -m 0755 debian/kvm-ok $(CURDIR)/debian/tmp/usr/bin/kvm-ok
+
+ # kvm-source
+ install -D -m 0755 debian/reportbug-hook.sh $(CURDIR)/debian/tmp/usr/share/bug/kvm-source
+ # Copy only the driver source to the proper location
+ mkdir -p debian/tmp/usr/src
+ cp -r kernel debian/tmp/usr/src/kvm-$(DEB_UPSTREAM_VERSION)
+ # Copy the needed debian/ pieces to the proper location
+ cp debian/dkms.conf debian/tmp/usr/src/kvm-$(DEB_UPSTREAM_VERSION)
+
+ dh_install --sourcedir=debian/tmp --list-missing
+
+# Build architecture-independent files here.
+# Pass -i to all debhelper commands in this target to reduce clutter.
+binary-indep: build-indep install
+ dh_testdir -i
+ dh_testroot -i
+ dh_installchangelogs -i debian/changelog.upstream
+ dh_installdocs -i
+# dh_installexamples -i
+# dh_install -i
+# dh_installmenu -i
+# dh_installdebconf -i
+# dh_installlogrotate -i
+# dh_installemacsen -i
+# dh_installpam -i
+# dh_installmime -i
+# dh_installinit -i
+# dh_installcron -i
+# dh_installinfo -i
+ dh_installman -i
+ dh_link -i
+ dh_compress -i
+ dh_fixperms -i
+ dh_installdeb -i
+# dh_perl -i
+# dh_python -i
+# dh_makeshlibs -i
+ dh_installdeb -i
+ dh_shlibdeps -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
+
+# Build architecture-dependent files here.
+binary-arch: build-arch install
+ dh_testdir -s
+ dh_testroot -s
+# dh_installdebconf -s
+ dh_installdocs -s
+# dh_installexamples -s
+# dh_installmenu -s
+# dh_installlogrotate -s
+# dh_installemacsen -s
+# dh_installpam -s
+# dh_installmime -s
+ dh_installinit -s --no-restart-on-upgrade --error-handler=true
+# dh_installcron -s
+ dh_installman -s debian/kvm.1
+ dh_installudev -s --priority=45
+# dh_installinfo -s
+ dh_installchangelogs -s debian/changelog.upstream
+ dh_strip -s
+ dh_link -s
+ dh_compress -s
+ dh_fixperms -s
+# dh_makeshlibs -s
+ dh_installdeb -s
+# dh_perl -s
+ dh_shlibdeps -s
+ dh_gencontrol -s
+ dh_md5sums -s
+ dh_builddeb -s
+
+binary: binary-indep binary-arch
+
+# get-orig-source adapted from /usr/share/gnome-pkg-tools/1/rules/sf-get-source.mk from the gnome-pkg-tools package
+# copied from CDBS' buildvars
+DEB_SOURCE_PACKAGE ?= $(strip $(shell egrep '^Source: ' debian/control | cut -f 2 -d ':'))
+DEB_VERSION ?= $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ')
+DEB_NOEPOCH_VERSION ?= $(shell echo $(DEB_VERSION) | cut -d: -f2-)
+DEB_UPSTREAM_VERSION ?= $(shell echo $(DEB_NOEPOCH_VERSION) | sed 's/+[^-]*-[^-]*$$//')
+
+# where to store the resulting .orig tarball
+DEB_TARBALL_DOWNLOAD_DIR ?= ../tarballs
+TARBALL_EXT ?= tar.gz
+
+SF_PROJECT ?= $(DEB_SOURCE_PACKAGE)
+SF_MODULE ?= $(DEB_SOURCE_PACKAGE)
+SF_TARBALL ?= $(SF_MODULE)-$(DEB_UPSTREAM_VERSION).$(TARBALL_EXT)
+SF_DOWNLOAD_URL ?= http://$$sf_mirror.dl.sourceforge.net/$(SF_PROJECT)/$(SF_TARBALL)
+SF_MIRRORS ?= belnet easynews heanet internap jaist kent mesh nchc optusnet ovh puzzle superb-east superb-west surfnet switch ufpr umn
+SF_DOWNLOAD_COMMAND ?= for sf_mirror in $(SF_MIRRORS); do wget -nv -T10 -t1 -O $(DEB_TARBALL_DOWNLOAD_DIR)/$(DEB_SOURCE_PACKAGE)_$(DEB_UPSTREAM_VERSION).orig.$(TARBALL_EXT) $(SF_DOWNLOAD_URL) && break; done
+
+get-orig-source:
+ dh_testdir
+ @@echo 'Source package: $(DEB_SOURCE_PACKAGE)'
+ @@echo 'Source package: $(DEB_VERSION)'
+ @@echo 'Source version without epoch: $(DEB_NOEPOCH_VERSION)'
+ @@echo 'Upstream version (for orig tarball): $(DEB_UPSTREAM_VERSION)'
+ mkdir -p $(DEB_TARBALL_DOWNLOAD_DIR)
+ $(SF_DOWNLOAD_COMMAND)
+ case "$(TARBALL_EXT)" in \
+ tar.bz2|tbz) \
+ bzcat $(DEB_TARBALL_DOWNLOAD_DIR)/$(DEB_SOURCE_PACKAGE)_$(DEB_UPSTREAM_VERSION).orig.$(TARBALL_EXT) | \
+ gzip -9 >$(DEB_TARBALL_DOWNLOAD_DIR)/$(DEB_SOURCE_PACKAGE)_$(DEB_UPSTREAM_VERSION).orig.tar.gz ; \
+ rm -f $(DEB_TARBALL_DOWNLOAD_DIR)/$(DEB_SOURCE_PACKAGE)_$(DEB_UPSTREAM_VERSION).orig.$(TARBALL_EXT) \
+ ;;\
+ esac
+ cd $(DEB_TARBALL_DOWNLOAD_DIR) && \
+ tar xzf $(DEB_SOURCE_PACKAGE)_$(DEB_UPSTREAM_VERSION).orig.tar.gz
+ cd $(DEB_TARBALL_DOWNLOAD_DIR) && \
+# rm -f $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION)/qemu/pc-bios/openbios* && \
+# rm -f $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION)/qemu/pc-bios/*.bin && \
+ rm -f $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION)/bios/VGABIOS* && \
+ rm -f $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION)/vgabios/*.bin && \
+ rm -f $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION)/bios/*.bin && \
+ rm -f $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION)/bios/*.aml
+ cd $(DEB_TARBALL_DOWNLOAD_DIR) && \
+ for i in $(unwanted_bios_files); do \
+ rm -f $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION)/qemu/pc-bios/$$i; \
+ done
+ cd $(DEB_TARBALL_DOWNLOAD_DIR) && \
+ tar c $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION) | \
+ gzip -9 >$(DEB_TARBALL_DOWNLOAD_DIR)/$(DEB_SOURCE_PACKAGE)_$(DEB_UPSTREAM_VERSION)+dfsg.orig.tar.gz
+
+
+.PHONY: build clean binary-indep binary-arch binary install binary-modules kdist kdist_configure kdist_config kdist_image kdist_clean
+
--- kvm-84+dfsg.orig/debian/changelog
+++ kvm-84+dfsg/debian/changelog
@@ -0,0 +1,1126 @@
+kvm (1:84+dfsg-0ubuntu14) karmic; urgency=low
+
+ * debian/source_kvm.py: collect kvm*, and qemu*
+
+ -- Dustin Kirkland Mon, 01 Jun 2009 10:05:27 -0500
+
+kvm (1:84+dfsg-0ubuntu13) karmic; urgency=low
+
+ * debian/source_kvm.py: only collect packages related to kvm for apport,
+ LP: #382077
+
+ -- Dustin Kirkland Mon, 01 Jun 2009 07:17:46 -0500
+
+kvm (1:84+dfsg-0ubuntu12) jaunty-proposed; urgency=low
+
+ * Apply patch series from upstream to fix segfaults when cancelling
+ DMA operations in virtual machines. (LP: #359447)
+
+ -- Soren Hansen Sun, 03 May 2009 09:39:47 +0200
+
+kvm (1:84+dfsg-0ubuntu11) jaunty; urgency=low
+
+ * debian/patches/add-all-virtio-drives.patch: Fix bugs where the caller
+ does not specify a perfectly defined list of virtio drives starting at
+ index=0 and having no gaps in indices; LP: #360832, #360825
+ * debian/patches/fix-qcow-corruption: Cherry-pick from kvm stable git
+ branch, fixes at least one cause of qcow2 image corruption; no reports
+ yet of this in Ubuntu, but I'm being proactive about this one;
+ LP: #361938
+ * debian/source_kvm.py: dpkg -l was a little too heavy, compress this
+ output considerably
+
+ -- Dustin Kirkland Fri, 17 Apr 2009 09:59:58 -0500
+
+kvm (1:84+dfsg-0ubuntu10) jaunty; urgency=low
+
+ * debian/patches/virtio-net_disable_gso.patch: hardy guest kernels
+ do not have working gso support. Disable it for everyone until
+ we have a work around, LP: #331128.
+
+ -- Dustin Kirkland Thu, 02 Apr 2009 11:08:34 -0500
+
+kvm (1:84+dfsg-0ubuntu9) jaunty; urgency=low
+
+ * debian/source_kvm.py: add a basic apparmor hook for kvm, retrieving
+ a listing of all packages installed, and the kvm command line used
+
+ -- Dustin Kirkland Fri, 27 Mar 2009 15:56:24 -0500
+
+kvm (1:84+dfsg-0ubuntu8) jaunty; urgency=low
+
+ * debian/patches/dkmsify.patch: handle i686 arch properly, LP: #333632
+ * debian/control: kvm-source needs kernel headers
+ * debian/kvm-source.postinst: check if necessary headers are installed;
+ if not, print a handy error message with instructions, LP: #341159
+ * debian/kvm.init: use proper lsb begin/end message logging for cleaner
+ usplash interaction, LP: #275009
+ * debian/rules, debian/control: Enable pulseaudio audio driver, LP: #304649
+
+ -- Dustin Kirkland Thu, 12 Mar 2009 00:17:04 -0500
+
+kvm (1:84+dfsg-0ubuntu7) jaunty; urgency=low
+
+ * debian/control: revert libvdeplug2-dev build-dependency as this package
+ is in Universe
+
+ -- Dustin Kirkland Mon, 02 Mar 2009 23:11:02 -0600
+
+kvm (1:84+dfsg-0ubuntu6) jaunty; urgency=low
+
+ [ Emmet Hikory ]
+ * debian/rules, debian/control: Enable build for lpia & ia64
+ (thanks to TJ) LP: #277517
+
+ -- Dustin Kirkland Mon, 02 Mar 2009 15:35:26 -0600
+
+kvm (1:84+dfsg-0ubuntu5) jaunty; urgency=low
+
+ * debian/patches/fix_screen_corruption: patch from upstream SVN (should
+ be dropped in next merge), fixes LP: #336712, #333920
+ * debian/patches: permanently removed all dropped patches
+
+ -- Dustin Kirkland Mon, 02 Mar 2009 09:15:26 -0600
+
+kvm (1:84+dfsg-0ubuntu4) jaunty; urgency=low
+
+ [ TJ ]
+ * debian/control: add build-depends on libvdeplug2-dev which will cause
+ qemu's configure script to enable vde support, LP: #253230
+
+ [ Dustin Kirkland ]
+ * debian/kvm-source.postinst: remove dkms module before installing new
+ one, LP: #334177
+
+ -- Dustin Kirkland Thu, 26 Feb 2009 16:07:57 -0600
+
+kvm (1:84+dfsg-0ubuntu3) jaunty; urgency=low
+
+ [ Reviewed Ubuntu patches with KVM/QEMU upstream, Anthony Liguori ]
+ * debian/patches/03_bios_no_ssp.patch: DROPPED, included upstream
+ * debian/patches/06_no_system_linux_kvm_h.patch: DROPPED, no longer
+ necessary, kvm kernel header file is now generally available
+ * debian/patches/from-debian-qemu/22_net_tuntap_stall.patch: DROPPED,
+ no longer necessary; this patch was to work around a bug in
+ 2.6.11-rc1; this patch could be causing network packet drop issues;
+ definitely WRONG at this point with modern QEMU
+ * debian/patches/from-debian-qemu/62_linux_boot_nasm.patch: DROPPED,
+ dead code in modern QEMU; completely rewritten to not require an
+ external assembler; now built dynamically in pc.c
+ * debian/patches/SECURITY_CVE-2007-1321+1322+1366+2893.patch: DROPPED
+ * CVE-2007-1321: Fixed upstream
+ - QEMU svn commit: r3019
+ * CVE-2007-1322: Fixed upstream
+ - QEMU svn commit: r5921
+ * CVE-2007-1366: Fixed upstream
+ - QEMU svn commit: r3012
+ * CVE-2007-2893: Not related to QEMU
+ * dma.c: Non-CVE fix, r3917
+ * block.c: Incorrect patch (negative offset IS allowed, switches
+ between block and byte offset)
+ * Remainder of the patch was split into: net-socket.patch
+ (should be sent upstream)
+ * debian/patches/series: updated accordingly
+ * debian/patches/do-not-install-bios.patch: DROPPED
+ added --disable-blobs to configure in debian/rules
+ * debian/patches/reenable_audio_drivers.patch: DROPPED
+ added --audio-drv-list="oss alsa sdl" to debian/rules
+ * debian/patches/anon_inodes_fix.patch: DROPPED, this is already
+ upstream
+ * debian/patches/ppc-build.patch: DROPPED, not necessary
+ * debian/rules: remove references to non-existant linux_boot.bin
+
+ [ Remaining Patches ]
+ * debian/patches/01_use_bios_files_in_usr_share_kvm.patch -p0
+ debian/patches/04_use_etc_kvm_kvm-ifup.patch -p0
+ debian/patches/07_change_qemu_docdir.patch
+ |-----> merged to a single patch, rename_qemu_kvm.patch
+ * debian/patches/CVE-2008-0928.patch: upstream work in progress
+ * debian/patches/evdev_keycode_map.patch: upstream work in progress
+ * debian/patches/02_fix_kernel_Makefile.patch: merged into dkmsify.patch
+ * debian/patches/dkmsify.patch: Ubuntu-specific (should validate if
+ still necessary...)
+ * debian/patches/net-socket.patch: to be sent upstream
+
+ [ Other Changes ]
+ * scripts/qemu-ifup: bridge device determination was broken, required
+ br0 to be present for this script to operate properly, LP: #125302
+
+ -- Dustin Kirkland Fri, 20 Feb 2009 16:11:06 -0600
+
+kvm (1:84+dfsg-0ubuntu2) jaunty; urgency=low
+
+ * debian/patches/reenable_audio_drivers.patch: drop the explicit list
+ of sound card drivers configured; upstream handles this properly now
+
+ -- Dustin Kirkland Wed, 18 Feb 2009 12:00:53 -0600
+
+kvm (1:84+dfsg-0ubuntu1) jaunty; urgency=low
+
+ * New upstream release
+ * debian/patches/CVE-2008-0928.patch: updated to apply cleanly
+ * debian/patches/SECURITY_CVE-2007-1321+1322+1366+2893.patch: updated to
+ apply cleanly
+ * debian/patches/reenable_audio_drivers.patch: add es1370 to the soundcard
+ list
+ * debian/patches/ppc-build.patch: required for the new qemu to build on
+ non-ppc platforms (bug upstream, should be fixed by next release)
+ * debian/rules: the clean target now depends on config.status (variable
+ definition needed by 'make clean'); the source's clean target seems
+ to clean out qemu/$(BUILD_CPU)-softmmu now, commenting out; reordered
+ calling of source's clean targets to ensure that the clean can
+ succeed
+
+ -- Dustin Kirkland Tue, 17 Feb 2009 19:42:43 -0600
+
+kvm (1:83+dfsg-0ubuntu1) jaunty; urgency=low
+
+ * New upstream release, fixes LP: #320320
+
+ -- Dustin Kirkland Fri, 23 Jan 2009 09:01:03 -0500
+
+kvm (1:82+dfsg-0ubuntu1) jaunty; urgency=low
+
+ * New upstream release, LP: #316521
+ * debian/patches/04_use_etc_kvm_kvm-ifup.patch: reworked to patch
+ qemu/net.h
+ * debian/patches/CVE-2008-0928.patch: updated
+ * debian/patches/do-not-install-bios.patch: updated, Makefile now supports
+ a variable (perhaps we should set this with configure?)
+ * debian/patches/reenable_audio_drivers.patch: updated
+ * debian/patches/anon_inodes_fix.patch: updated
+ * debian/patches/SECURITY_CVE-2007-1321+1322+1366+2893.patch: updated
+ * debian/rules: clean up a bit better after the build; allows for
+ subsequent binary and source builds and rebuilds
+
+ -- Dustin Kirkland Tue, 20 Jan 2009 21:47:54 -0500
+
+kvm (1:79+dfsg-0ubuntu5) jaunty; urgency=low
+
+ * Bump debhelper version for updated udev rules path, add Breaks to ensure
+ we use the right version of udev.
+
+ -- Scott James Remnant Mon, 12 Jan 2009 19:44:11 +0000
+
+kvm (1:79+dfsg-0ubuntu4) jaunty; urgency=low
+
+ * Correctly rename kvm-nbd man page to match the binary's name.
+ * Make "debian/rules clean" do a better job at cleaning up after the build.
+
+ -- Soren Hansen Tue, 25 Nov 2008 10:51:55 +0100
+
+kvm (1:79+dfsg-0ubuntu3) jaunty; urgency=low
+
+ * Rename kvm-nbd man page to match the binary's name.
+
+ -- Soren Hansen Mon, 24 Nov 2008 00:04:36 +0100
+
+kvm (1:79+dfsg-0ubuntu2) jaunty; urgency=low
+
+ * Fix kernel module build.
+
+ -- Soren Hansen Tue, 18 Nov 2008 22:04:35 +0100
+
+kvm (1:79+dfsg-0ubuntu1) jaunty; urgency=low
+
+ * New upstream release
+ * Dropped the following patch sets, as they're now upstream:
+ + qemu_vnc_ext_key_event
+ + i2c_bus_load_fix
+ * Updated the following patches to match kvm-79:
+ + SECURITY_CVE-2007-1321+1322+1366+2893
+ + CVE-2008-0928
+ + 22_net_tuntap_stall
+ * Make kvm-source autoinstall (meaning that it'll compile itself not just
+ for the kernel running at install time, but also for kernels that are
+ installed later on).
+
+ -- Soren Hansen Tue, 18 Nov 2008 21:37:56 +0100
+
+kvm (72+dfsg-2) unstable; urgency=medium
+
+ * Merge changes from NMU, thanks to Thomas Viehmann
+ * Use a sane method for creating the kvm group, thanks to Josh Tripplet
+ (closes: #502299)
+
+ -- Jan Lübbe Thu, 16 Oct 2008 18:22:41 +0200
+
+kvm (1:72+dfsg-1ubuntu6) intrepid; urgency=low
+
+ * debian/patches/evdev_keycode_map.patch, debian/patches/series: ported the
+ gtk-vnc patch that fixes evdev keycode mapping (LP: #258389)
+ * debian/control: explicitly depend on libx11-dev
+
+ -- Dustin Kirkland Wed, 24 Sep 2008 17:25:20 -0500
+
+kvm (1:72+dfsg-1ubuntu5) intrepid; urgency=low
+
+ [ Dustin Kirkland ]
+ * Add debian/10-kvm.fdi, debian/org.freedesktop.hal.kvm.policy: hal object
+ descriptor and policy file for kvm/virt-hardware
+ * debian/kvm.install; Put the hal/PolicyKit configuration in the correct
+ place (LP: #273764)
+
+ [ Martin Pitt ]
+ * Simplify Dustin's dh_install handling a bit (don't use debian/rules any
+ more, install straight with dh_install).
+
+ -- Dustin Kirkland Wed, 24 Sep 2008 14:00:16 +0200
+
+kvm (1:72+dfsg-1ubuntu4) intrepid; urgency=low
+
+ * debian/kvm-ok: simple script to determine of the cpu supports kvm
+ acceleration (LP: #188878)
+ * debian/rules: install the kvm-ok binary into /usr/bin/kvm-ok
+
+ -- Dustin Kirkland Mon, 22 Sep 2008 12:09:47 -0500
+
+kvm (1:72+dfsg-1ubuntu3) intrepid; urgency=low
+
+ * debian/control: Trivial update to description, to note that KVM works on
+ both x86 and x86_64 hardware (LP: #225260).
+
+ -- Dustin Kirkland Mon, 22 Sep 2008 10:51:23 -0500
+
+kvm (1:72+dfsg-1ubuntu2) intrepid; urgency=low
+
+ * Switch KVM to use dkms. This makes kernel and userspace match each other
+ and saves us the trouble of possible ABI bumps when updating kvm.
+
+ -- Soren Hansen Thu, 28 Aug 2008 14:47:26 +0200
+
+kvm (1:72+dfsg-1ubuntu1) intrepid; urgency=low
+
+ * Merge with Debian unstable. Remaining changes:
+ - Add dh_installudev rule.
+ - Add ppc_rom.bin to needed_bios_files for powerpc target.
+ - Build-Depend on "sysv-rc (>= 2.86.ds1-14.1ubuntu2)" to accomodate
+ TearDown.
+ - Suggest ubuntu-vm-builder instead of debootstrap.
+ - Change kvm-data conflict/replaces version to 68+dfsg-1, to properly
+ conflict with the Ubuntu kvm-data package.
+ - Suggest kvm-pxe to enable PXE booting.
+
+ -- Soren Hansen Thu, 14 Aug 2008 11:00:29 +0200
+
+kvm (72+dfsg-1) unstable; urgency=low
+
+ * New upstream release (closes: #493536)
+ * Cherry-pick a commit from qemu which fixes migration
+ * Cherry-pick a commit from kvm which fixes the external module with 2.6.26
+ * Reenable audio drivers and cards (closes: #491676)
+
+ -- Jan Lübbe Mon, 11 Aug 2008 19:51:51 +0200
+
+kvm (1:71+dfsg-1ubuntu2) intrepid; urgency=low
+
+ * Readd dh_installudev rule.
+
+ -- Soren Hansen Mon, 11 Aug 2008 18:34:23 +0200
+
+kvm (1:71+dfsg-1ubuntu1) intrepid; urgency=low
+
+ * Merge with Debian unstable. Remaining changes:
+ - Add ppc_rom.bin to needed_bios_files for powerpc target.
+ - Comment out PXE rom builds (etherboot is not in main at this point).
+ - Build-Depend on "sysv-rc (>= 2.86.ds1-14.1ubuntu2)" to accomodate
+ TearDown.
+ - Suggest ubuntu-vm-builder instead of debootstrap.
+ - Change kvm-data conflict/replaces version to 68+dfsg-1, to properly
+ conflict with the Ubuntu kvm-data package.
+ * Suggest kvm-pxe to enable PXE booting.
+
+ -- Soren Hansen Wed, 23 Jul 2008 16:23:17 +0200
+
+kvm (71+dfsg-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Jan Lübbe Sat, 19 Jul 2008 15:52:45 +0200
+
+kvm (70+dfsg-1) unstable; urgency=low
+
+ * New upstream release
+ * Merge changes from Ubuntu in debian/control
+ - Only Build-Depend on device-tree-compiler on PowerPC
+ - Change linux-{image,headers,source}-2.6 to just
+ linux-{image,headers,source}
+ - Don't suggest sudo
+ * Reenable CPU emulation
+ * Update to policy 3.8.0.0
+ - Add debian/README.source
+
+ -- Jan Lübbe Tue, 17 Jun 2008 18:55:51 +0200
+
+kvm (1:69+dfsg-1ubuntu1) intrepid; urgency=low
+
+ * Merge with Debian unstable. Remaining changes:
+ - Add ppc_rom.bin to needed_bios_files for powerpc target.
+ - Comment out PXE rom builds (etherboot is not in main at this point).
+ - DebianMaintainerField.
+ - Only Build-Depend on device-tree-compiler on PowerPC.
+ - Don't Build-Depend on etherboot.
+ - Build-Depend on "sysv-rc (>= 2.86.ds1-14.1ubuntu2)" to accomodate
+ TearDown.
+ - Don't recommend linux-image-2.6, since we only have 2.6 kernels anyway.
+ - Suggest ubuntu-vm-builder instead of debootstrap.
+ - Don't suggest sudo.
+ - Change kvm-data conflict/replaces version to 68+dfsg-1, to properly
+ conflict with the Ubuntu kvm-data package.
+ - Change suggests of kvm-source from linux-{headers,source}-2.6 to just
+ linux-{headers,source}.
+
+ -- Soren Hansen Wed, 28 May 2008 08:46:15 +0200
+
+kvm (69+dfsg-1) unstable; urgency=low
+
+ [ Jan Lübbe ]
+ * New upstream releases (closes: #481989)
+ - Fixes CVE-2007-1320 (Cirrus LGD-54XX "bitblt" heap overflow)
+ - Fixes CVE-2008-2004 (format guessing vulnerability, drop the patch)
+ - Update debian patches
+ * Update upstream changelog
+ * Update Vcs-* headers to git.debian.org
+ * Drop kvm-data again, build and ship only those files relevant to the
+ target arch
+
+ [ Soren Hansen ]
+ * 03_bios_no_ssp.patch:
+ - Pass -fno-stack-protector to gcc when building the bios image.
+ * qemu_vnc_ext_key_event.diff:
+ - Implement the Extended KeyEvent extension in kvm's embedded VNC server.
+ * Add kvm init script that loads the appropriate kernel modules.
+ * Update package description
+ - We no longer support cpu emulation, so hardware support is required.
+ - The standard kernel images provide the kernel modules, so compiling
+ them yourself from kvm-source is now optional.
+ - qemu is no longer needed for creating disk images, since we have kvm-img
+ now.
+ * Move kvm-source from "Recommends:" of kvm to "Suggests:", since the
+ modules are in the standard kernel images.
+ * Update CVE-2008-0928.patch to allow any bdrv request if vm is not
+ running. This fixes the savevm monitor command.
+ - This also fixes booting with qcow2 images (closes: #470664)
+
+ -- Jan Lübbe Mon, 26 May 2008 16:55:21 +0200
+
+kvm (1:68+dfsg-0ubuntu1) intrepid; urgency=low
+
+ * New upstream release + merge with debian. Remaining changes:
+ + SECURITY_CVE-2007-1320+1321+1322+1366+2893.patch
+ - Cirrus LGD-54XX "bitblt" heap overflow.
+ - NE2000 "mtu" heap overflow.
+ - QEMU "net socket" heap overflow.
+ - QEMU NE2000 "receive" integer signedness error.
+ - Infinite loop in the emulated SB16 device.
+ - Unprivileged "aam" instruction does not correctly handle the
+ undocumented divisor operand.
+ - Unprivileged "icebp" instruction will halt emulation.
+ + qemu_vnc_ext_key_event.diff:
+ - Enabled extended key events in embedded VNC server.
+ + DebianMaintainerField.
+ + Add init script to automatically load appropriate kernel modules
+ on boot (TearDown style). Add sysv-rc (>= 2.86.ds1-14.1ubuntu2)
+ dependency in the process.
+ + Install kvm.udev as priority 45.
+ + Add "XS-Debian-" prefix to Debian's VCS headers.
+ + Demote kvm-source to a Suggests of kvm (from Recommends).
+ + Update package description to say that the kvm modules are in the
+ kernel.
+ + Update kernel package names to match Ubuntu naming.
+
+ -- Soren Hansen Tue, 06 May 2008 10:01:22 +0200
+
+kvm (66+dfsg-1.1) unstable; urgency=high
+
+ * Non-maintainer upload by the security team
+ * Merge the fixes for the security issues in the embedded qemu
+ version (Closes: #480011) Thanks to Jamie Strandboge
+ - Add CVE-2007-1320+1321+1322+1366+2893.patch from from qemu 0.9.1-1
+ to address the following issues:
+ - Note: CVE-2007-2893 is the same as CVE-2007-1323 referenced in DSA-1284-1.
+ - Note: CVE-2007-5729 and CVE-2007-5730 are the same as CVE-2007-1321
+ referenced in DSA-1284-1.
+ - Cirrus LGD-54XX "bitblt" heap overflow.
+ - NE2000 "mtu" heap overflow.
+ - QEMU "net socket" heap overflow.
+ - QEMU NE2000 "receive" integer signedness error.
+ - Infinite loop in the emulated SB16 device.
+ - Unprivileged "aam" instruction does not correctly handle the
+ undocumented divisor operand.
+ - Unprivileged "icebp" instruction will halt emulation.
+ * Include patch which defaults to existing behaviour (probing based on file
+ contents), so it still requires the mgmt app (e.g. libvirt xml) to
+ pass a new "format=raw" parameter for raw disk images
+ - Fixes possible privilege escalation, which could allow guest users
+ to read arbitrary files on the host by modifying the header to identify
+ a different format (Closes: #481204) Fixes: CVE-2008-2004
+
+ -- Steffen Joeris Tue, 20 May 2008 13:28:14 +0000
+
+kvm (66+dfsg-1) unstable; urgency=low
+
+ * New upstream release
+ * Update upstream changelog
+ * Ship the userspace utilities
+ - Depend on python for the scripts
+
+ -- Jan Lübbe Thu, 17 Apr 2008 22:23:14 +0200
+
+kvm (65+dfsg-2) unstable; urgency=low
+
+ * Install PXE boot ROMs only if they exists and Build-Depend on
+ etherboot only on i386
+ - This allows building on amd64 (closes: #469125)
+ * Disable qemu CPU emulation and drop Build-Depend on gcc-3.4
+ (closes: #440430)
+ * Don't Recommend qemu (we ship qemu-img as kvm-img)
+ * Move vde2 from Recommends to Suggests
+ * Suggest samba for the -smb option (closes: #474209)
+
+ -- Jan Lübbe Thu, 10 Apr 2008 22:52:26 +0200
+
+kvm (65+dfsg-1) unstable; urgency=low
+
+ * New upstream release
+ * Update upstream changelog
+ * Put the link to ../packages/default.sh into /usr/share/modass/overrides/
+ as suggested by m-a's HOWTO-DEVEL
+ - This also avoides a Conflicts/Replaces against older kvm packages
+ (closes: #473910)
+
+ -- Jan Lübbe Tue, 08 Apr 2008 18:49:34 +0200
+
+kvm (64+dfsg-1) unstable; urgency=low
+
+ * New upstream release
+ * Update upstream changelog
+ * Build-Depend on device-tree-compiler and build bamboo.dtb from source
+ * Clean up debian/rules
+ * Drop patch included upstream (02_snapshot_use_tmpdir.patch)
+
+ -- Jan Lübbe Tue, 01 Apr 2008 17:21:14 +0200
+
+kvm (63+dfsg-2) unstable; urgency=low
+
+ * Depend on libncurses5-dev to allow the curses interface in addition
+ to SDL (closes: #471292)
+ * Use 02_snapshot_use_tmpdir from debian qemu svn r298 (closes: #470757)
+ * Correct my name in debian/control
+
+ -- Jan Lübbe Wed, 26 Mar 2008 22:18:43 +0100
+
+kvm (63+dfsg-1) unstable; urgency=low
+
+ * New upstream release
+ * Update upstream changelog (from mailing list)
+ * Fix CVE-2008-0928 using the patch in the bugreport (closes: #469666)
+
+ -- Jan Lübbe Tue, 11 Mar 2008 10:48:29 +0100
+
+kvm (62+dfsg-3) unstable; urgency=low
+
+ * Build a kvm-data package for the files loaded into the VM
+ (closes: #469125)
+
+ -- Jan Luebbe Fri, 07 Mar 2008 00:15:56 +0100
+
+kvm (62+dfsg-2) unstable; urgency=low
+
+ * Use PXE boot ROMs from the Etherboot package
+
+ -- Jan Luebbe Sat, 01 Mar 2008 17:33:00 +0100
+
+kvm (62+dfsg-1) unstable; urgency=low
+
+ * New upstream release
+ - even more resolutions for -std-vga (closes: #463629)
+ * Update upstream changelog
+
+ -- Jan Luebbe Fri, 29 Feb 2008 21:51:02 +0100
+
+kvm (1:62+dfsg-0ubuntu7) hardy; urgency=low
+
+ * Revert sighandler.patch and virtio_hang.patch. Fixes hang in installer and
+ likely other places, too. (LP: #217815)
+
+ -- Soren Hansen Tue, 22 Apr 2008 19:09:33 +0200
+
+kvm (1:62+dfsg-0ubuntu6) hardy; urgency=low
+
+ * vmport_save_regs.patch:
+ - Only save and restore eax, ebx, ecx, edx, esi, and edi registers in
+ vmport_ioport_read.
+ (LP: #219165)
+
+ -- Soren Hansen Sat, 19 Apr 2008 01:47:15 +0200
+
+kvm (1:62+dfsg-0ubuntu5) hardy; urgency=low
+
+ * sighandler.patch:
+ - Fix segfault when trying to suspend domain. (LP: #218204)
+
+ -- Soren Hansen Wed, 16 Apr 2008 15:49:47 +0200
+
+kvm (1:62+dfsg-0ubuntu4) hardy; urgency=low
+
+ * virtio_hang.patch:
+ - Fix a vcpu hang when using virtio-blk in guests.
+
+ -- Soren Hansen Sun, 13 Apr 2008 23:08:47 +0200
+
+kvm (1:62+dfsg-0ubuntu3) hardy; urgency=low
+
+ [ Jamie Strandboge ]
+ * debian/patches/SECURITY_CVE-2007-1320+1321+1322+1366+2893.patch
+ based on 90_security.patch from qemu 0.9.1-1ubuntu1. Please note that
+ CVE-2007-2893 is also known as CVE-2007-1323, and CVE-2007-5729 and
+ CVE-2007-5730 are known as CVE-2007-1321 in Debian. This patch addresses
+ the following:
+ - Cirrus LGD-54XX "bitblt" heap overflow.
+ - NE2000 "mtu" heap overflow.
+ - QEMU "net socket" heap overflow.
+ - QEMU NE2000 "receive" integer signedness error.
+ - Infinite loop in the emulated SB16 device.
+ - Unprivileged "aam" instruction does not correctly handle the
+ undocumented divisor operand.
+ - Unprivileged "icebp" instruction will halt emulation.
+ * debian/patches/SECURITY_CVE-2008-0928.patch: perform range checks on
+ block device read and write requests
+ * References
+ CVE-2007-1320
+ CVE-2007-1321
+ CVE-2007-1322
+ CVE-2007-1323
+ CVE-2007-1366
+ CVE-2007-2893
+ CVE-2007-5729
+ CVE-2007-5730
+ CVE-2008-0928
+
+ [ Soren Hansen ]
+ * debian/patches/extboot-geometry.patch:
+ - Apply extboot patch from Anthony Liguori that fixes CHS information
+ being calculated incorrectly, which seems to upset grub from time to time.
+
+ -- Soren Hansen Thu, 10 Apr 2008 16:35:09 +0000
+
+kvm (1:62+dfsg-0ubuntu2) hardy; urgency=low
+
+ * Re-disable unaccelerated execution (thus re-removing gcc-3.4 build-
+ dependency).
+
+ -- Soren Hansen Wed, 05 Mar 2008 08:48:44 +0100
+
+kvm (1:62+dfsg-0ubuntu1) hardy; urgency=low
+
+ * New upstream release
+
+ -- Soren Hansen Tue, 26 Feb 2008 13:10:57 -0500
+
+kvm (61+dfsg-1) unstable; urgency=low
+
+ * The "Live from FOSDEM" release
+ * New upstream release
+ * Update upstream changelog
+ * Drop dependency on vgabios
+ * Switch to git for packaging, update Vcs-* in debian/control
+
+ -- Jan Luebbe Sat, 23 Feb 2008 17:22:29 +0100
+
+kvm (60+dfsg-1) unstable; urgency=low
+
+ * New upstream release
+ * Update upstream changelog
+ * Drop restore-IO_MEM_ROM-mark.patch (included upstream)
+ * Build and use the vgabios shipped with kvm (closes: #462434)
+ * Use install_linux_boot.patch from Ubuntu to fix the -kernel option
+ (closes: #412022)
+
+ -- Jan Luebbe Fri, 25 Jan 2008 16:12:41 +0100
+
+kvm (1:60+dfsg-0ubuntu2) hardy; urgency=low
+
+ * Make installs succeed regardless of the init script's exit code. (LP:
+ #183663)
+ * Disable non-accelerated execution.
+ * Fixed up the clean target in debian/rules to properly clean up after
+ ourselves.
+ * Dropped build-dependency on gcc-3.4.
+
+ -- Soren Hansen Wed, 20 Feb 2008 17:41:11 +0100
+
+kvm (1:60+dfsg-0ubuntu1) hardy; urgency=low
+
+ * New upstream release.
+
+ -- Soren Hansen Wed, 23 Jan 2008 10:38:11 +0100
+
+kvm (1:59+dfsg-0ubuntu6) hardy; urgency=low
+
+ * Removed 08_default_tdf.patch. No longer needed.
+ * Modify init script to not exit with an error when stopping if the module
+ isn't loaded (LP: #183663).
+ * Use the correct names for the modules in init script.
+
+ -- Soren Hansen Fri, 18 Jan 2008 19:12:26 +0100
+
+kvm (1:59+dfsg-0ubuntu5) hardy; urgency=low
+
+ * Added *updated* patch to support extended key events in qemu's vnc
+ implementation.
+
+ -- Soren Hansen Sun, 13 Jan 2008 21:13:33 +0100
+
+kvm (1:59+dfsg-0ubuntu4) hardy; urgency=low
+
+ * Added patch to support extended key events in qemu's vnc implementation.
+ * s/log_error_msg/log_failure_msg/ in init script.
+ * Don't bother calling kvm.init stop/start on upgrade.
+
+ -- Soren Hansen Sun, 13 Jan 2008 20:46:59 +0100
+
+kvm (1:59+dfsg-0ubuntu3) hardy; urgency=low
+
+ * Add init script to load kvm modules. (LP: #104297)
+ * Install linux_boot.bin to enable -kernel option. (LP: #111884)
+
+ -- Soren Hansen Tue, 08 Jan 2008 16:26:05 +0100
+
+kvm (1:59+dfsg-0ubuntu2) hardy; urgency=low
+
+ * Cherry pick 6b8bb99a9cde386d72b4b7c22b92f4bdec333dab from git to
+ probably fix LP: 180105, and certainly fix an issue on Intel hardware
+ due to incompatible changes to the kernel API.
+
+ -- Soren Hansen Fri, 04 Jan 2008 03:20:57 +0100
+
+kvm (1:59+dfsg-0ubuntu1) hardy; urgency=low
+
+ * New upstream release
+ * Build with alsa support (cherry pick from 57+dfsg-2)
+
+ -- Soren Hansen Thu, 03 Jan 2008 10:39:25 +0100
+
+kvm (58+dfsg-2) unstable; urgency=low
+
+ * Use patch from kvm-devel list to fix booting with some linux kernels
+ (closes: #458481)
+
+ -- Jan Luebbe Mon, 21 Jan 2008 11:20:17 +0100
+
+kvm (58+dfsg-1) unstable; urgency=low
+
+ * The "Live from 24c3 in Berlin" release
+ * New upstream release (closes: #452392)
+ * Update upstream changelog
+ * Update to policy version 3.7.3 (no changes needed)
+
+ -- Jan Luebbe Sat, 29 Dec 2007 00:00:44 +0100
+
+kvm (57+dfsg-2) unstable; urgency=low
+
+ * Build with alsa support (closes: #457536)
+
+ -- Jan Luebbe Sun, 23 Dec 2007 20:15:30 +0100
+
+kvm (57+dfsg-1) unstable; urgency=low
+
+ * New upstream release (closes: #457061)
+ - qemu has been updated to the current cvs version
+ * Update upstream changelog
+
+ -- Jan Luebbe Thu, 20 Dec 2007 17:14:05 +0100
+
+kvm (1:57+dfsg-0ubuntu1) hardy; urgency=low
+
+ * New upstream release.
+
+ -- Soren Hansen Tue, 18 Dec 2007 18:15:54 +0100
+
+kvm (56+dfsg-1) unstable; urgency=low
+
+ * New upstream release
+ * Update upstream changelog
+
+ -- Jan Luebbe Wed, 19 Dec 2007 20:27:19 +0100
+
+kvm (1:56+dfsg-0ubuntu1) hardy; urgency=low
+
+ * New upstream version.
+ * Merge changes from 55+dfsg-2.
+
+ -- Soren Hansen Tue, 18 Dec 2007 09:36:20 +0100
+
+kvm (55+dfsg-2) unstable; urgency=low
+
+ * Depend on libgnutls for VNC TLS support
+ * Build BIOS from kvm sources (kvm and qemu patchs are different, thanks to
+ Carlo Marcelo Arenas Belon for spotting this)
+ * Fix debian/rules clean
+
+ -- Jan Luebbe Sat, 08 Dec 2007 19:45:45 +0100
+
+kvm (1:55+dfsg-1ubuntu1) hardy; urgency=low
+
+ * Merge with Debian. Remaining changes:
+ - debian/control:
+ - Demote kvm-source to Suggests
+ - Mention kvm-source is unnecessary
+ - Modify Maintainer value to match the DebianMaintainerField
+ specification.
+ - Depend on recent bochsbios-qemu.
+ - Moved Vcs-* to XS-Original-Vcs-*.
+ - Don't recommend linux-image-2.6 since Ubuntu is Linux 2.6 only anyway.
+ - Rename suggestions of linux-{headers,source} to Ubuntu's naming scheme.
+ - Add pkg-config to Build-Depends (fixes warning during build)
+ - Add 08_default_tdf.patch to make -tdf the default.
+
+ -- Soren Hansen Mon, 10 Dec 2007 13:43:03 +0100
+
+kvm (55+dfsg-1) unstable; urgency=low
+
+ * New upstream release
+ * Include cpu information also for bugs against kvm-source
+ * Update upstream changelog
+ * Remove bios.bin from upstream tarball (closes: #452963) and depend on the
+ current version of bochsbios
+
+ -- Jan Luebbe Fri, 07 Dec 2007 19:22:57 +0100
+
+kvm (54+dfsg-1) unstable; urgency=low
+
+ * New upstream release
+ * Revive get-orig-source to remove other BIOS files (see #452963).
+ Thanks Soren Hansen.
+ * Include upstream changelog from the wiki.
+ * Update README.Debian and mention the kvm modules distributed with
+ the Linux kernel (closes: #440790)
+
+ -- Jan Luebbe Thu, 29 Nov 2007 14:40:23 +0000
+
+kvm (1:54+dfsg-0ubuntu1) hardy; urgency=low
+
+ * New upstream release.
+
+ -- Soren Hansen Tue, 04 Dec 2007 09:06:33 +0100
+
+kvm (53-1) unstable; urgency=low
+
+ * New upstream release
+ * Upstream has removed the elpin BIOS files, stop repacking the tarball.
+
+ -- Jan Luebbe Wed, 21 Nov 2007 16:53:51 +0100
+
+kvm (1:53+dfsg-0ubuntu1) hardy; urgency=low
+
+ * New upstream release
+ * Properly clean out all the blobs from the tarball in get-orig-source.
+ * Depend on bochsbios-qemu and vgabios to get the needed blobs from there
+ instead.
+
+ -- Soren Hansen Mon, 26 Nov 2007 12:09:12 +0100
+
+kvm (52+dfsg-1) unstable; urgency=low
+
+ * New upstream release
+ * Switch to Vcs-Svn and Vcs-Browser in debian/control
+
+ -- Jan Luebbe Thu, 15 Nov 2007 18:47:41 +0100
+
+kvm (1:52+dfsg-0ubuntu1) hardy; urgency=low
+
+ * New upstream release.
+ * 08_default_tdf.patch
+ - Make -tdf the default and add a -no-tdf option.
+
+ -- Soren Hansen Thu, 15 Nov 2007 02:21:55 +0100
+
+kvm (1:48+dfsg-1ubuntu1) hardy; urgency=low
+
+ * Merge from Debian unstable (LP: #161790, LP: #149785).
+ * Remaining Ubuntu changes:
+ + Add epoch
+ + debian/preinst:
+ - Remove code to delete never-in-Ubuntu conf file
+ + debian/control:
+ - Demote kvm-source to Suggests
+ - Mention kvm-source is unnecessary
+ - Add epoch to Conflicts
+ + debian/patches/from-debian-qemu/63_use_dev_bus_usb_not_proc_bus_usb.patch
+ - USB path /proc/bus/usb => /dev/bus/usb
+ + debian/rules:
+ - Call dh_installudev
+ * New changes:
+ + debian/control:
+ - Remove Debian's VCS fields: that's not where the Ubuntu packages are
+ maintained.
+
+ -- Christopher James Halse Rogers Sat, 10 Nov 2007 17:42:58 +1100
+
+kvm (48+dfsg-1) unstable; urgency=low
+
+ * Adopt package with Baruch Even's permission
+ * New upstream release
+
+ -- Jan Luebbe Thu, 25 Oct 2007 11:15:54 +0200
+
+kvm (46+dfsg-0.1) unstable; urgency=low
+
+ * Non-maintainer upload (low threshold nmu)
+ * New upstream release
+ * Adapt sf-get-orig-source from gnome-pkg-tools
+ * Repackage tarball to remove elpin VGA bios (closes: #440472)
+ * Add debian/watch file
+
+ -- Jan Luebbe Sun, 14 Oct 2007 12:02:54 +0200
+
+kvm (36-0.1) unstable; urgency=low
+
+ * Non-maintainer upload (with permission)
+ * New upstream release (closes: #438412)
+ * Update patches
+ * Install documentation from qemu to /usr/share/doc/kvm to avoid conflicts
+ and refer to it from kvm(1) (closes: #434729)
+ * Rename conflicting manpages
+ * Add texi2html as a Build-Dependency
+ * Make module-assistant a Dependency of kvm-source because it is needed by
+ it's debian/rules
+ * debian/conffiles is not necessary for /etc
+
+ -- Jan Luebbe Mon, 27 Aug 2007 18:45:36 +0200
+
+kvm (1:28-4ubuntu3) hardy; urgency=low
+
+ * debian/patches/from-debian-qemu/63_use_dev_bus_usb_not_proc_bus_usb.patch:
+ + Fixes broken USB device access since /proc/bus/usb/devices was replaced by
+ /dev/bus/usb/devices. (LP #156085)
+
+ -- TJ Mon, 29 Oct 2007 13:00:00 +0000
+
+kvm (1:28-4ubuntu2) gutsy; urgency=low
+
+ * debian/rules:
+ + Call dh_installudev again (LP #127704). We have a slightly different
+ udev policy to Debian.
+ * debian/preinst:
+ + Remove code to delete old kvm.rules file. The file it references was
+ never in the Ubuntu packages, and we use dh_installudev now.
+ * debian/control:
+ + Demote the Recommends on kvm-source to Suggests. kvm works with the
+ kernel modules we ship, so the kvm-source package doesn't add much.
+
+ -- Christopher James Halse Rogers Sat, 29 Sep 2007 18:53:27 +1000
+
+kvm (1:28-4ubuntu1) gutsy; urgency=low
+
+ * Merge from Debian Unstable (LP: #119254, #122113).
+ * Remaining Ubuntu Changes:
+ + Add epoch
+ + debian/control
+ - Mention that the kvm-source package is unnecessary.
+ * Add epoch to the Conflicts
+
+ -- Christopher James Halse Rogers (RAOF) Mon, 25 Jun 2007 22:49:27 +1000
+
+kvm (28-4) unstable; urgency=low
+
+ * Divert kernel modules when installing the kvm-source modules
+ (Closes: #429851)
+ * kvm-ifup, even if bridge command failed continue to work, this will allow
+ users who have no bridge setup and intend to setup some other method to
+ get it to work without messing with the package files. (Closes: #407459)
+
+ -- Baruch Even Thu, 21 Jun 2007 12:37:54 +0100
+
+kvm (28-3) unstable; urgency=low
+
+ * Fix infinite loop in kvm-ifup script
+
+ -- Baruch Even Mon, 18 Jun 2007 20:51:50 +0100
+
+kvm (28-2) unstable; urgency=low
+
+ * We moved a file from kvm-source to kvm, to be able to properly upgrade we
+ specify a conflict against older versions (Closes: #417652)
+ * Fix kvm-ifup script to work in more conditions (Closes: #417151)
+ * Remove old /etc/udev/kvm.rules since it's not needed (Closes: #414331)
+
+ -- Baruch Even Sun, 17 Jun 2007 21:13:07 +0100
+
+kvm (28-1) unstable; urgency=low
+
+ * New upstream release (Closes: #422197)
+ - Should fix oops (Closes: #418928)
+ * kqemu is no longer in non-free (Closes: #419152)
+
+ -- Baruch Even Sun, 17 Jun 2007 10:32:40 +0100
+
+kvm (18-1) unstable; urgency=low
+
+ * New upstream release (Closes: #416926)
+ * Move the module-assistant script to the kvm package from kvm-source so all
+ users will benefit from the integration (Closes: #416122)
+ * Remove patch to add qemu-ifup and kvm initscript, they are now part of kvm directly.
+
+ -- Baruch Even Sat, 31 Mar 2007 21:00:34 +0300
+
+kvm (1:16-1ubuntu2) feisty; urgency=low
+
+ * Revert to kvm-16 to match released kernel.
+ * Add epoch.
+
+ -- Ben Collins Sun, 15 Apr 2007 17:52:01 -0400
+
+kvm (16-1ubuntu1) feisty; urgency=low
+
+ * New upstream.
+
+ -- Ben Collins Wed, 14 Mar 2007 00:33:11 -0400
+
+kvm (15-1ubuntu1) feisty; urgency=low
+
+ * New upstream.
+
+ -- Ben Collins Thu, 1 Mar 2007 22:15:02 -0500
+
+kvm (14-1) unstable; urgency=medium
+
+ [ Leonard Norrgård ]
+ * New upstream version. KVM is now based on qemu-0.9.0.
+ * Suggest etherboot and actually suggest hal (was only mentioning it).
+ * Update copyright info.
+ * Add a couple of patches from Debian qemu: 22_net_tuntap_stall.patch,
+ 04_do_not_print_rtc_freq_if_ok.patch, 62_linux_boot_nasm.patch (62_*
+ currently only to avoid a buildd FTBS problem).
+ * Reorder the first two paragraphs in the description for kvm so the
+ general description is first, the more technical second.
+ * Moved adduser to Pre-Depends, as we rely on it for installation.
+ * For a detailed changelog, please see:
+ svn log -v -r 2227:2383 svn://svn.debian.org/svn/collab-maint/ext-maint/kvm/trunk
+
+ [ Baruch Even ]
+ * Update the uploader name of Leonard so that lintian won't think it's an
+ NMU.
+ * Add XS-Vcs-Browser field
+
+ -- Baruch Even Sat, 24 Feb 2007 17:43:42 +0200
+
+kvm (13-1) UNRELEASED; urgency=low
+
+ * New upstream version.
+
+ -- Leonard Norrgård Sat, 10 Feb 2007 07:40:59 +0200
+
+kvm (12-1) unstable; urgency=high
+
+ * New upstream version. Most important upstream changes:
+ - Attempting to reboot Linux guest no longer reboots host on AMD,
+ actual guest reboot still not possible.
+ - The option -no-acpi is no longer required to install Windows
+ (the option is still recommended as the Windows ACPI HAL will
+ eat a lot of cpu time).
+
+ -- Leonard Norrgard Sun, 23 Jan 2007 18:54:17 +0200
+
+kvm (11-2) unstable; urgency=low
+
+ [ Baruch Even ]
+ * Make the quilt include part conditional so we don't have to have it when
+ building the kernel module. (Closes: #407447, #407482)
+ * Do not recommend linux-image-2.6 in kvm-source, and move linux-headers-2.6
+ from depends to suggests where it belongs. The package can build from
+ vanilla kernels as well as Debian kernels. (Closes: #407729)
+
+ [ Leonard Norrgard ]
+ * Enhance manual page a bit.
+
+ -- Baruch Even Sun, 21 Jan 2007 09:05:38 +0200
+
+kvm (11-1) unstable; urgency=high
+
+ * New upstream version. Closes #406800, #406275, #404075.
+ * This version fixes many stability issues in earlier versions of KVM.
+ * Automatically create group kvm on installation of package kvm
+ * Added udev support to automatically set group kvm on /dev/kvm
+ * Added reportbug script (/usr/share/bug/kvm) so some info that
+ might be relevant gets included automatically.
+ * Tell module-assistant about the kvm-source package, so it shows up
+ in the module selection menu.
+ * Add information on building the modules using module-assistant.
+ * Add /etc/kvm/kvm-ifup script (conffile) to bring up the network for
+ the VM in a simpler way, see the manual page for kvm for description.
+ This used to be /etc/qemu-ifup, as installed by the qemu package.
+ * Depend on iproute, bridge-utils, used by kvm-ifup and the upcoming
+ /etc/init.d script.
+ * Remove non-x86 bios images - KVM is only meaningful for x86 guests.
+ * Keep KVM bios files in /usr/share/kvm, rather than sharing them with
+ other packages as the KVM bios is different (also avoids unexpected
+ bios updates).
+ * Don't depend on qemu, as we now keep our own bios.
+ * Recommend kvm-source, qemu (mostly for qemu-img), vde2 and linux-image-2.6.
+ * Suggest sudo and debootstrap.
+ * For kvm-source, depend on linux-headers-2.6 | linux-source-2.6,
+ recommend linux-image-2.6 and suggest module-assistant and
+ kernel-package.
+ * Use quilt to handle patches.
+ * More detailed package description for kvm, added Homepage:.
+
+ -- Leonard Norrgard Sun, 14 Jan 2007 07:11:03 +0200
+
+kvm (7-1) unstable; urgency=low
+
+ * New upstream version
+ * Install the Intel and AMD modules (Closes: 402820)
+
+ -- Baruch Even Wed, 13 Dec 2006 09:19:44 +0200
+
+kvm (5-2) unstable; urgency=low
+
+ * Yet another attempt to fix building on amd64.
+
+ -- Baruch Even Wed, 6 Dec 2006 08:35:04 +0200
+
+kvm (5-1) unstable; urgency=low
+
+ * New upstream version
+ * Really fix building on amd64 (Closes: #400549)
+
+ -- Baruch Even Wed, 6 Dec 2006 07:12:30 +0200
+
+kvm (4-2) unstable; urgency=low
+
+ * Allow build on amd64 arch, it really should mean Intel x86 64bit arches,
+ kvm still doesn't support AMD SVM instructions and requires the Intel
+ CPUs. (Closes: #400549)
+
+ -- Baruch Even Tue, 28 Nov 2006 22:16:08 +0200
+
+kvm (4-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Baruch Even Tue, 21 Nov 2006 22:23:26 +0200
+
+kvm (3-2) unstable; urgency=low
+
+ * Use KERNEL_DIR variable when building the module to enable building a
+ module for a kernel that is not being run right now. (Closes: #399603)
+ * Add manpage that refers the user to qemu(1) where he can find all the
+ information he needs.
+
+ -- Baruch Even Tue, 21 Nov 2006 09:22:57 +0200
+
+kvm (3-1) unstable; urgency=low
+
+ * New upstream version.
+ * Use upstream versioning of natural numbers.
+ * First upload to Debian (Closes: #398458)
+
+ -- Baruch Even Wed, 15 Nov 2006 23:58:12 +0200
+
+kvm (0.0.2-1) unstable; urgency=low
+
+ * Initial release
+
+ -- Baruch Even Tue, 14 Nov 2006 20:49:57 +0200
--- kvm-84+dfsg.orig/debian/reportbug-hook.sh
+++ kvm-84+dfsg/debian/reportbug-hook.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+#
+# kvm reportbug script
+#
+
+echo >&3
+echo >&3
+
+if which lshal > /dev/null 2>&1; then
+ echo 'selected information from lshal(1):' >&3
+ echo >&3
+ lshal | egrep '^ (system\.(vendor|product)|smbios)' >&3
+ echo >&3
+ echo >&3
+fi
+
+if [ -r /proc/cpuinfo ]; then
+ echo /proc/cpuinfo: >&3
+ echo >&3
+ cat /proc/cpuinfo >&3
+ echo >&3
+ echo >&3
+fi
--- kvm-84+dfsg.orig/debian/kvm.init
+++ kvm-84+dfsg/debian/kvm.init
@@ -0,0 +1,69 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: kvm
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: KVM init script
+# Description: This script loads the kernel modules needed by kvm
+### END INIT INFO
+
+. /lib/lsb/init-functions
+
+# Figure out which module we need.
+if grep -q ^flags.*\\\ /proc/cpuinfo
+then
+ module=kvm_intel
+elif grep -q ^flags.*\\\ /proc/cpuinfo
+then
+ module=kvm_amd
+else
+ module=
+fi
+
+case "$1" in
+ start)
+ log_begin_msg "Loading kvm module $module"
+ if [ -z "$module" ]
+ then
+ log_end_msg 1
+ exit 0
+ fi
+ if modprobe "$module"
+ then
+ log_end_msg 0
+ else
+ log_end_msg 1
+ exit 1
+ fi
+ ;;
+ stop)
+ if [ -z "$module" ]
+ then
+ exit 0
+ fi
+ if lsmod | grep -q "$module"
+ then
+ log_begin_msg "Unloading kvm module $module"
+ if rmmod "$module"
+ then
+ rmmod kvm
+ log_end_msg 0
+ else
+ log_end_msg 1
+ exit 1
+ fi
+ fi
+ ;;
+ force-reload|restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|force-reload}" >&2
+ exit 3
+ ;;
+esac
+
+:
--- kvm-84+dfsg.orig/debian/changelog.upstream
+++ kvm-84+dfsg/debian/changelog.upstream
@@ -0,0 +1,976 @@
+= kvm-69 [19 may 2008] =
+
+ * fix kvm guest clock compile error without apic (Glauber Costa)
+ * support PIT mode 3 (Aurelien Jarno)
+ * needed by GNU Hurd
+ * fix host oops emulating smsw on AMD
+ * fake performance counter MSRs on AMD (Chris Lalancette)
+ * fixes RHEL 4 guests
+ * fix virtio compile error on s390 (Heiko Carstens)
+ * fix hlt emulation when PIT is running but not injecting interrupts (Marcelo Tosatti)
+ * ditto for local apic (Marcelo Tosatti)
+ * fix kernel and userspace structure name clash on ia64 (Xiantao Zhang)
+ * fix GVMM module including non-PIC objects (Xiantao Zhang)
+ * 'make mrproper' fix (Andrew Morton)
+ * fix host oops on emergency reboot when hitting virt instructions
+ * simplify host cpu unplug
+ * fix kvm_vcpu_block() state race (Marcelo Tosatti)
+ * set iosapic pin count to 48 for ia64 (Xiantao Zhang)
+ * ppc: fix compile warning (Hollis Blanchard)
+ * ppc: fix lost simultaneous interrupts (Hollis Blanchard)
+ * ppc: log failed DCR accesses (Hollis Blanchard)
+ * ppc: order IRQ bit numbers as per docs (Hollis Blanchard)
+ * ppc: remove IRQ polarity code (Hollis Blanchard)
+ * ppc: remember state of level-triggered interrupts (Hollis Blanchard)
+ * ppc: emulate pci controller on 440 SoC (Hollis Blanchard)
+ * ppc: add pci controller to bamboo platform (Hollis Blanchard)
+ * external module compatibility updates
+ * merge qemu-svn
+ * fix CVE-2007-1320 - Cirrus LGD-54XX "bitblt" heap overflow
+ * allow boot device change from the monitor
+ * reduce spurious vga updates
+ * fix CVE-2008-2004 - format guessing vulnerability
+ * remove merge conflict leftover (Carlo Marcelo Arenas Belon)
+
+= kvm-68 [4 may 2008] =
+
+ * Intel EPT support (Sheng Yang)
+ * Code cleanups (Harvey Harrison)
+ * Fix task switch busy bit setting (Izik Eidus)
+ * Reduce guest idle cpu usage on ppc (Hollis Blanchard)
+ * Support floating point instructions on ppc (Christian Ehrhardt)
+ * Fix lmsw emulation
+ * fixes host oops on AMD
+ * Add PIT mode 4 support (Marcelo Tosatti)
+ * fixes DragonflyBSD
+ * Avoid spurious exceptions on state reload (Jan Kiszka)
+ * Add SVM kvmtrace support (Joerg Roedel)
+ * Avoid schedule-in-atomic on 2.6.26 hosts (Andrea Arcangeli)
+ * Handle vma regions with no backing page (Anthony Liguori)
+ * yet another step on the way to pci device assignment
+ * move external module compatibility code into .c file
+ * build: sync non-x86 kvm headers
+ * avoid using kernel headers; use installed libc headers instead
+ * don't exit iothread berfore all vcpus are stopped (Dor Laor)
+ * libkvm uninitialized variable fix (Marcelo Tosatti)
+ * remove old user/config.mak (Jerone Young)
+ * fix vcpu startup race (Anthony Liguori)
+ * dump all libkvm errors to stderr (Jan Kiszka)
+ * fix cross-compilation (Jerone Young)
+ * fix kvm_show_code() to work on ROM and real-mode (Jan Kiszka)
+ * allow qemu -kernel option with extboot (Mark McLoughlin)
+
+= kvm-67 [28 apr 2008] =
+
+ * s390/ia64: compile fix (Christian Borntraeger)
+ * s390: change virtio interrupt to follow arch specification (Christian Borntraeger)
+ * close vcpu refcounting race (Al Viro)
+ * code cleanups (Hollis Blanchard, Christian Borntraeger)
+ * ppc 44x support (Hollis Blanchard, Jerone Young)
+ * reduce cr8 intercepts on AMD (Joerg Roedel)
+ * speeds up Vista x64
+ * fix locking in paravirt mmu support (Marcelo Tosatti)
+ * fix ppc build on non-44x (Stephen Rothwell)
+ * fix PIT time-drift compensation with multiple guests (Marcelo Tosatti)
+ * merge qemu-svn
+ * spin up vcpu threads before setting lapic contents
+ * pass disk geometery to extboot loader (Ryan Harper)
+ * separate header copying from source copying in 'make sync'
+ * implement 'hypervisor present' cpuid bit
+ * fix address truncation on ia64 (Jes Sorensen)
+ * handle nic/storage hotplug failure gracefully (Chris Wright)
+ * more kvm_stat display options
+ * fix qemu system_powerdown with Linux guests
+
+= kvm-66 [16 apr 2008] =
+
+ * adjust external module for 2.6.25 module locations (Anthony Liguori)
+ * fix userspace compilation failure without kernel pit (Joerg Roedel)
+ * kvmtrace performance monitoring mechanism (Eric Liu)
+ * stop all vcpus before saving their state (Marcelo Tosatti)
+ * fixes smp live migration
+ * save/restore kernel apicbase (Marcelo Tosatti)
+ * block SIG_IPI signals (Marcelo Tosatti)
+ * smsw mem16, lmsw mem16 emulation and unit tests
+ * fix compile warnings (Jerone Young)
+ * fix reset with iothread
+ * ia64 architecture support (Xiantao Zhang, Anthony Xu)
+ * don't assume guest pages are backed by a 'struct page' (Anthony Liguori)
+ * needed for pci device assignment
+ * register kvm's ioctl range
+ * fix hardware task switching buglet (Izik Eidus)
+ * fix mce handling on AMD (Joerg Roedel)
+ * do hardware task switching in hardware when NPT is enabled (Joerg Roedel)
+ * fix timer race waking up a halted vcpu with smp (Marcelo Tosatti)
+ * fix irq race leading to irqs delivery delays (Marcelo Tosatti)
+ * fix triple fault handling on AMD
+ * fix lea instruction emulation
+
+= kvm-65 [6 apr 2008] =
+
+ * fix hotplug build for non-x86 (Xiantao Zhang)
+ * ignore reads from the apic EOI register (Glauber Costa)
+ * fixes Linux 2.6.25-rclate bootup problems
+ * compile fixes (Carlo Marcelo Arenas Belon)
+ * fix ftruncate() on hugetlbfs use on older Linux hosts (Marcelo Tosatti)
+ * endianness fix virtio-block (Anthony Liguori)
+ * fixes virtio-blk on ppc
+ * refactor in-kernel PIT to be a separate device (Anthony Liguori)
+ * separate thread for I/O completions and timers (Marcelo Tosatti)
+ * fix vmmouse smp (Anthony Liguori)
+ * fix loading uninitialized variable into apic registers (Marcelo Tosatti)
+ * fixes apic being disabled on smp Linux guests running X
+ * disable kvm clock on Voyager or SGI Visual WS (Randy Dunlap)
+ * s390 support (Carsten Otte, Martin Schwidefsky, Christian Borntraeger, Heiko Carstens)
+ * fix large pages (Marcelo Tosatti)
+ * speedup msr processing on Intel via msr bitmap (Sheng Yang)
+ * add slab shrinker support (Izik Eidus)
+ * reduces nonswappable footprint under memory pressure
+ * code cleanup (Joerg Roedel)
+ * vm refcounting (Izik Eidus)
+ * only mark a page as accessed if it was really accessed by the guest
+ * drop slots_lock while in guest mode
+ * fixes long latencies with iothread
+ * prepopulate guest pages only after write-protecting them (Marcelo Tosatti)
+ * fixes smp race leading to guest spinning
+
+= kvm-64 [27 mar 2008] =
+
+ * kvm clock fixes (Glauber Costa)
+ * kvm clock enable/disable bit (Glauber Costa)
+ * in kernel pit model (Sheng Yang)
+ * improves timing accuracy for certain guests
+ * fix bad tss handling causing ioperm() to fail on the host
+ * paravirt mmu support (Marcelo Tosatti, Anthony Liguori, Avi Kivity)
+ * set accessed bit on non-speculative shadow ptes
+ * minor performance improvement
+ * fix init_rmode_tss() locking (Marcelo Tosatti)
+ * fix dirty bit being lost when write permissions are removed from a page (Izik Eidus)
+ * code cleanups
+ * module option for disabling flexpriority
+ * fix apic access page memory leak
+ * hardware task switching support (Izik Eidus)
+ * for freedos and similar guests
+ * fix extboot failures under certain conditions (Anthony Liguori)
+ * export vcpu thread ID via qemu monitor (Glauber Costa)
+ * can be used to implement vcpu->cpu pinning
+ * pci hotplug (Marcelo Tosatti)
+ * can now add and remove nics and drives dynamically
+ * fix virtio memory region sizing (Marcelo Tosatti)
+ * fix segfault on disabled virtio nic (Dor Laor)
+ * fix sci interrupt on pmtimer wraparound (Dor Laor, Yaniv Kamay)
+ * fix qemu exit on pci hotplug failure (Ryan Harper)
+ * fix 'make clean' destroying configuration (Ryota Ozaki)
+ * ppc userspace updates (Jerone Young)
+ * improve IDE and SCSI DMA speed
+
+= kvm-63 [5 mar 2008] =
+
+ * portability: make room for the ia64 register stack (Xiantao Zhang)
+ * fix leak when setting the pv clock to an invalid address (Marcelo Tosatti)
+ * detect vcpu triple faults (Joerg Roedel)
+ * fix race when instantiating a shadow pte
+ * fix host crash on guest kexec
+ * code cleanups (Harvey Harrison)
+ * better tsc handling on Intel hosts with stable tscs
+ * cpu hotplug (Glauber Costa)
+ * merge qemu-cvs
+ * new curses display option
+ * change -hugetlb-path to -mem-path (Anthony Liguori)
+ * increase pci support from 6 slots to 32 slots
+ * document ./configure --disable-cpu-emulation (Jerone Young)
+ * fix powerpc cpu initialization (Jerone Young)
+ * simplify host_cpuid() assembly code
+
+= kvm-62 [26 feb 2008] =
+
+ * fix oops running external module on 2.6.25 due to mmdrop (Andrea Arcangeli)
+ * backward compatibility for 2.6.25 desc_struct changes
+ * fix memory alias mixup (Uri Lublin)
+ * add file:// migration protocol (Uri Lublin)
+ * fix reading from character devices with flow control (Jan Kiszka)
+ * large host page support (Marcelo Tosatti)
+ * fix screen corruption with high resolutions (Andreas Winkelbauer)
+ * implement vmware vga for kvm (Soren Hansen, Anthony Liguori)
+ * even more resolutions for -std-vga (Andreas Winkelbauer)
+ * code cleanups (Carlo Marcelo Arenas Belon, Harvey Harrison)
+ * allow up to 16 vcpus (Anthony Liguori, Avi Kivity)
+ * allow up to 16 memory slots
+ * improve vcpu_run error reporting
+ * fix host crash on hosts without EFER (Intel Core not 2s)
+ * drop kvm private segment descriptor in favor of Linux' desc_struct
+ * stat counter for hypercalls (Amit Shah)
+ * fake values for MSR_PERF_STATUS (Alexander Graf)
+ * needed for Darwin/OS X
+ * better root pagetable unpinning (Marcelo Tosatti)
+ * paravirt clock fixes (Glauber Costa, Marcelo Tosatti)
+ * avoid host hang when guest sets APIC timer to zero
+ * also fixes live migration of Windows 2000 guests
+ * fix RHEL 5 i386 smp boot due to timer interrupts being routed to all vcpus
+
+= kvm-61 [19 feb 2008] =
+
+ * paravirtualized clock (Glauber de Oliveira Costa)
+ * mmu debug compile fix (Marcelo Tosatti)
+ * last branch record virtualization on AMD (Joerg Roedel)
+ * fix Windows x64 installer crash on AMD (Joerg Roedel)
+ * use new kvm semaphore instead of mmap_sem (Izik Eidus)
+ * fixes potential deadlock
+ * fix type in vmx header (Ryan Harper)
+ * make the supported cpuid ioctl system-wide instead of per-vm
+ * fix setting cr0 from userspace (Paul Knowles)
+ * add group decoding support to the x86 emulator
+ * nested paging support on AMD (Joerg Roedel)
+ * allow access to EFER on 32-bit hosts (Joerg Roedel)
+ * allows using the nx bit
+ * fix copy_from_user_inatomic() call non-preemptible hosts (Andrea Arcangeli)
+ * fix smp Linux on AMD (Joerg Roedel)
+ * make the code more ppc friendly (Hollis Blanchard)
+ * add virtual processor identifier support (VPID) on Intel (Sheng Yang)
+ * don't expose pio page to host userspace on non-x86
+ * decouple mmio from shadow page tables
+ * make function pointer tables constant (Jan Engelhardt)
+ * merge qemu-cvs
+ * reverse vnc connections
+ * e1000 nic emulation
+ * more audio options
+ * usb serial device emulation
+ * cdrom/dvd improvements
+ * timer tick reduction
+ * e1000 pxe boot rom (Alexey Eremenko)
+ * fix 'make clean'
+ * merge bios from boch-cvs
+ * adds dmi tables
+ * enables acpi on 32-bit Linux guests
+ * workaround qemu tcg breakage on non-x86 (Anthony Liguori, Xiantao Zhang)
+ * adjust external module for removal of fastcall in mainline (Andrea Arcangeli)
+ * improve qemu main loop
+ * fix live migration with tpr optimization
+ * fix external module miscompile with newer kernels (Andrea Arcangeli)
+ * fix external module include directory priority problems (Andrea Arcangeli)
+ * fix 32-bit host userspace on 64-bit host kernels
+ * fix preempt notifier emulation clash with host hardware debug registers (Andrea Arcangeli)
+ * adjust external module for 2.6.25
+ * fix ioapic live migration not transferring some registers (Chris Lalancette)
+ * separate tpr optimization paths for smp and up
+ * pio emulation on mmio for ia64 (Xiantao Zhang)
+ * fix qemu timer rearm fallout from last merge (Anders Melchiorsen)
+ * clean up kvm/qemu interaction (Anthony Liguori)
+ * improve ppc dcr handling (Jerone Young)
+ * fix 64-bit guest migration failure due to bad lm_capable_kernel init (Uri Lublin)
+ * fix bios parallel build (Carlo Marcelo Arenas Belon)
+ * update virtio abi (Anthony Liguori)
+ * support virtio abi versioning (Anthony Liguori)
+ * add powerpc kvm/qemu support (Jerone Young)
+ * support ppc 440 "bamboo" board (Jerone Young)
+ * improve migration error handling (Chris Lalancette)
+ * enable cache on reset in bios
+ * fix up testsuite warnings (Bernhard Kaindl)
+ * fix aio deadlocks with smp guests
+
+= kvm-60 [23 jan 2008] =
+
+ * fix compilation with older kernels (Andi Kleen)
+ * virtio host support (Anthony Liguori, Dor Laor)
+ * includes block and network devices
+ * fix power management timer overflow handling
+ * fix qemu running with older kernels
+ * boot from scsi/virtio (Anthony Liguori)
+ * add 1280x800 resolution to -std-vga
+ * fix acpi sci interrupt generation
+ * compile fixes (Carlo Marcelo Arenas Belon)
+ * update ide cdrom to match qemu (Carlo Marcelo Arenas Belon)
+ * fix extboot on older gcc (Christian Ehrhardt)
+ * powerpc dcr tests (Christian Ehrhardt)
+ * rtl8139 is now the default nic type (Guido Guenther)
+ * acpi power button support (Guido Guenther)
+ * powerpc testsuite harness (Hollis Blanchard)
+ * powerpc libkvm support (Jerone Young)
+ * bump piix4 to rev 3 to avoid slowdown reading pm timer (Marcelo Tosatti)
+ * migration updates (Uri Lublin)
+ * ia64 smp support in qemu (Xiantao Zhang)
+ * fix acpi vapic page on save/restore
+ * move x86 fpu to x86 specific header (Christian Ehrhardt)
+ * minor shadow code simplification(Eddie Dong)
+ * optimize pae pte updates (Eddie Dong, Eric Liu)
+ * simplify shadow hash table indexing (Eddie Dong)
+ * kvm_para.h compile fix (Glauber de Oliveira Costa)
+ * dirty page tracking fix (Izik Eidus)
+ * fix svm lazy fpu switching (Joerg Roedel)
+ * fixes Vista x64 on AMD
+ * only allow vmcall/vmmcall on #UD traps (Sheng Yang)
+ * fix unbounded latency due to a race in the guest entry code
+ * with this fix and a realtime kernel, sub 50usec worst case latencies can be achieved
+ * move apic timer migration to preemptible code
+
+= kvm-59 [3 jan 2008] =
+
+ * merge qemu-cvs
+ * -drive cache=[on|off] option
+ * adds scsi passthrough
+ * ide lba48 support for 120GB+ disk images
+ * widescreen resolutions for -std-vga
+ * libkvm compile fixes (Carlo Marcelo Arenas Belon)
+ * mmu scaling (Marcelo Tosatti, Avi Kivity)
+
+= kvm-58 [27 dec 2007] =
+
+ * add mmu statistics
+ * log data on write to unimplemented msr
+ * fix memory corruption (mapcount error) after host fork() (Izik Eidus)
+ * improve preempt notifier emulation on older kernels (Andrea Arcangeli)
+ * refactor IDE CHS guessing (Anthony Liguori)
+ * testsuite improvements
+ * apic tpr acceleration for Windows guests
+ * disabled on smp for now
+ * fix warnings due to qemu merge (Carlo Marcelo Arenas Belon)
+ * improve support for older kernels (Carlo Marcelo Arenas Belon)
+ * icache sync in qemu after dma for more archs (Christian Ehrhardt)
+ * simplify mmio callback (Christian Ehrhardt)
+ * align gdbstub with qemu-cvs (Jan Kiszka)
+ * fix compile if kernel/include/asm/ preexists (Sheng Yang)
+ * fix migration on i386 hosts (Uri Lublin)
+ * qemu ia64 adjustments (Zhang Xiantao)
+
+= kvm-57 [18 dec 2007] =
+
+ * warn when emulating preempt notifiers
+ * add pio port 0x80 access test to testsuite
+ * merge qemu-cvs
+ * add rtc emulation for ia64 (Xiantao Zhang)
+ * fix qemu memory allocation off-by-one
+ * new kernel source layout (virt/kvm/, arch/x86/kvm/)
+ * coalesce remote tlb flushes when write-protecting guest pages (Eddie Dong)
+ * lapic debug compile fix (Joerg Roedel)
+ * fix smp mmu shadow instantiation race (Marcelo Tosatti)
+ * atomic cmpxchg8b on i386 (Marcelo Tosatti)
+ * throttle vmx_intr_assist() printk (Ryan Harper)
+ * portability (Xiantao Zhang)
+
+= kvm-56 [14 dec 2007] =
+
+ * Generalize exception handling mechanism
+ * fix x86 emulator eflags handling
+ * avoid exit to userspace on cr8 write if using kernel lapic on Intel
+ * fix stack instructions emulation in 64-bit mode
+ * fixes Vista x86
+ * except on Woodcrests
+ * trap cr8 access on amd
+ * mmu simplification
+ * fix setting nx bit on shadow pte
+ * fix inherited mmu permissions
+ * more portability work (Hollis Blanchard, Xiantao Zhang)
+ * add cr8 to 'mov cr' instruction emulation (Joerg Roedel)
+ * exit to userspace on cr8 write if not kernel apic on amd (Joerg Roedel)
+ * atomically set accessed and dirty bit on guest ptes (Marcelo Tosatti)
+ * use ->fault() vma op instead of ->nopage()
+ * remove abi 10 libkvm compatibility
+ * add some x86 emulator tests
+ * add many mmu access tests
+ * fix rpm build on Fedora 8 (Dan Kenigsberg)
+ * fix 'make sync' on debian and derivatives (Ryan Harper)
+ * fix live migration (Uri Lublin, Izik Eidus)
+ * initial ia64 userspace (Xiantao Zhang)
+
+= kvm-55 [4 dec 2007] =
+
+ * remove old hypercall driver (Anthony Liguori)
+ * disable dirty page logging for main memory (Izik Eidus)
+ * fix incorrect page count calculation for dirty logging (Izik Eidus)
+ * improve testsuite 'make clean' (Neo Jia)
+ * compile fix (Sheng Yang)
+ * reorganize x86 emulator main switch
+ * don't bypass mmu on pae cr3 reload if pdptrs changed
+ * fixes Solaris x86
+ * use common defines for EFER (Carlo Marcelo Arenas Belon)
+ * portability (Xiantao Zhang)
+ * fix kvm_init() error path (Xiantao Zhang)
+ * ia64 iosapic support (Xiantao Zhang)
+
+= kvm-54 [27 nov 2007] =
+
+ * fix fpu leak on AMD (Amit Shah)
+ * (on kvm-53, lazy fpu was disabled, so this just improves performance)
+ * prefetch instruction bytes when emulating
+ * implement guest page fault bypass on nonpae
+ * should speed up some 32-bit guests
+ * add a bunch of statistics
+ * avoid unnecessary remote tlb flushes
+ * improves guest smp scaling
+ * avoid mmu reloads on guest tlb flushes
+ * mmu code simplification
+ * disallow using kvm after fork()
+ * fix failures while injecting external interrupts in real mode
+ * fixes Mandrake 9 regression
+ * fix multiple address- and operand- size override prefix emulation
+ * infrastructure for using host cpu features on guest (Dan Kenigsberg)
+ * not used yet by qemu
+ * cmps instruction emulation (Guillaume Thouvenin)
+ * allows OpenBSD to boot
+ * cleanups (Hollis Blanchard)
+ * fix potential memory leak in real-mode smp (Izik Eidus)
+ * reduce unnecessary dirtying of pages (Izik Eidus)
+ * mark guest pages as accessed with the Linux lru (Izik Eidus)
+ * more portability work (Jerone Young, Xiantao Zhang)
+ * allow new vmx features even if not using in-kernel apic (Sheng Yang)
+ * refactor shadow mmu size calculation (Xiantao Zhang)
+ * improve testsuite
+ * beginning of x86 emulator unit test
+ * fix compile warnings (Carlo Marcelo Arenas Belon)
+ * log module version in dmesg on load
+
+= kvm-53 [20 nov 2007] =
+
+ * testsuite: exit on end of test
+ * batch mode for kvm_stat script
+ * compile fixes (Carlo Marcelo Arenas Belon, Joe Perches)
+ * portability (Jerone Young, Zhang Xiantao)
+ * disable lazy fpu on AMD (Amit Shah)
+ * should fix instability on AMD
+ * will cause performance regression, fix in progress
+ * x86 emulator: fix 'push r/m' emulation (Amit Shah)
+ * register use reduction in vmx guest entry
+ * infrastructure for per-vm stats
+ * extends existing per-vcpu stats
+ * add mmu, state switch, emulation statistics
+ * use copy_{to,from}_user to access guest memory (Izik Eidus)
+ * simplify access to guest page tables (Izik Eidus)
+ * fix entry to real mode with segment bases beyond 1MB (Jan Kiszka)
+ * finally kill last use of cr2 in emulator (Sheng Yang)
+
+= kvm-52 [12 nov 2007] =
+
+ * fix efer reload host crash on T2600 and similar processors
+ * revert sleepy interrupt injection
+ * fixes "Fault when IDT_Vectoring"
+ * atomically inject real-mode interrupts
+ * wbinvd exiting on newer Intel processors (Eddie Dong)
+ * fixes real-time issues
+ * fix call/jmp instruction emulation (Izik Eidus)
+ * fixes Vista x64 installation
+ * fix save/restore/migrate with multiple nics
+ * fix build on i386 uniprocessor w/ no ioapic hosts
+ * fix smp_call_function_single() emulation on older hosts
+ * fixes smp guests not booting on RHEL 5 hosts
+ * make qemu/kvm memory allocation match plain qemu more closely (Izik Eidus)
+ * fixes issues with large memory guests
+ * libkvm compile fixes (Carlo Marcelo Arenas Belon, Jerone Young)
+
+
+= kvm-51 [7 nov 2007] =
+
+ * fix some x86 emulator one-byte insns (fixes W2K3 installer again)
+ * fix host hangs with NMI watchdog on AMD
+ * fix guest SMP on AMD
+ * fix dirty page tracking when clearing a guest page (Dor Laor)
+ * more portability work (Hollis Blanchard, Jerone Young)
+ * fix FlexPriority with guest smp (Sheng Yang)
+ * improve rpm specfile (Akio Takebe, Avi Kivity)
+ * fix external module vs portability work (Andrea Arcangeli)
+ * remove elpin bios due to license violation
+ * testsuite shutdown pio port
+ * don't advertise svm on the guest
+ * fix reset with kernel apic (Markus Rechberger)
+
+= kvm-50 [2 nov 2007] =
+
+ * fix smp_call_function_mask() emulation on preemptible kernels
+ * move libkvm into own directory (Hollis Blanchard)
+ * fix save/restore/migrate for new memory slot management (Uri Lublin)
+ * compile fixes (Uri Lublin, Avi Kivity)
+ * fix recursive locking on mmap() (Anthony Liguori)
+ * remove some cr2 dependencies from x86 emulator
+ * further simplify x86 emulator
+ * more portability work (Carsten Otte, Hollis Blanchard)
+ * Intel FlexPriority support (Sheng Yang)
+ * fix dirty page tracking on aliased pages (Uri Lublin)
+
+= kvm-49 [29 oct 2007] =
+
+ * Fix PIT time-drift-fix (only with -no-kvm-irqchip) (Dan Kenigsberg)
+ * Fix vnc auth error with clients <= 3.7 protocol (Dan Kenigsberg)
+ * Don't spin on hlt with interrupts disabled (Dor Laor)
+ * Fix pxe boot (Izik Eidus)
+ * Hide the Intel real-mode tss from userspace (Izik Eidus)
+ * Automatic memory slot management for libkvm (Izik Eidus)
+ * Fix problem with std-vga and 4GB guests (Izik Eidus)
+ * External module compat for smp_call_function_mask() (Laurent Vivier)
+ * More portability work (Jerone Young, Christian Borntraeger, Zhang Xiantao)
+ * Fix sleep-in-atomic-context during vcpu init
+ * Fix 'push imm8' emulation (fixes W2K3 installer)
+ * Intercept invd and wbinvd on AMD
+ * Reduce emulator dependency on cr2 (mov abs insns)
+ * Move page fault processing to common code
+ * Fix rmap memory consumption oops due to increased rmap usage with swap
+ * Fix potential memory leak with kernel-allocated memslots (Izik Eidus)
+ * Export memory slot allocation mechanism (Izik Eidus)
+ * Add kernel-private memslots (Izik Eidus)
+ * Fix local apic divide-by-zero (Kevin Pedretti)
+ * Improve local apic timer wraparound handling (Kevin Pedretti)
+ * Use newly available smp_call_function_mask() (Laurent Vivier)
+ * Micro-optimize register usage on vmentry/vmexit (Laurent Vivier)
+ * Cleanups, compilation fixes (Akio Takebe, Anthony Liguori, Avi Kivity)
+
+
+= kvm-48 [18 oct 2007] =
+
+ * use precise cpu accounting on ppc and s390 (Christian Borntraeger)
+ * make guest time accounting actually work (Laurent Vivier)
+ * fix host memory corruption when setting the guest dirty bit
+ * allow swapping with older userspace (Anthony Liguori)
+ * allow custom memory setup using libkvm (Gerd Hoffmann)
+
+
+= kvm-47 [18 oct 2007] =
+
+ * Reset fixes (Eddie Dong, Avi Kivity)
+ * Portability work (Carsten Otte)
+ * Cleanups (Anthony Liguori, Laurent Vivier)
+ * Simplify guest pagetable dirty bit management
+ * Fix nx bit for huge pages
+ * Fix write access to clean large pages (fixes rmap leak)
+ * Support for Linux 2.6.16 guests (movnti instruction) (Sheng Yang)
+ * Simplify apic timer backlog processing
+ * Move interrupt injection out of critical section
+ * x86 emulator work (Nitin A Kamble)
+ * restore freebsd support on AMD (fix smsw and lmsw) (Aurelien Jarno)
+ * Simplify guest page table walker
+ * Partial guest swapping (Izik Eidus)
+ * kvmctl improvements (Anthony Liguori)
+ * libkvm, qemu compilation against older kernels
+ * guest time accounting (Laurent Vivier)
+ * configure improvements (Carlo Marcelo Arenas Belon)
+ * fix 4GB+ configurations (Izik Eidus)
+ * cross compilation support (Jerone Young)
+
+= kvm-46 [10 oct 2007] =
+
+ * fix host oops on bad guest ioapic accesses
+ * handle NMIs before enabling host interrupts
+ * add general guest memory accessors (Izik Eidus)
+ * allow user control over shadow cache size (Izik Eidus)
+ * auto tune shadow cache size with guest memory (Izik Eidus)
+ * allocate guest memory in userspace instead of in kernel (Izik Eidus)
+ * code style fixes (Mike Day, Anthony Liguori)
+ * lapic cleanups (Rusty Russell)
+ * fix acpi interrupt reporting for FreeBSD
+ * fix color problems on certain displays
+ * Red Hat 7.1 support
+ * vmmouse support (Dan Kenigsberg)
+ * fix sdl window caption when keyboard is captured (Dan Kenigsberg)
+ * improve libkvm configure script (Jerone Young)
+ * improve bios compilation support on x86_64 hosts (Laurent Vivier)
+ * fix acpi processor reporting for Windows 2000 with the ACPI HAL (Sheng Yang)
+
+= kvm-45 [2 oct 2007] =
+
+ * don't use page->private for guest pages (Izik Eidus)
+ * x86 emulator cleanups, simplifications, and fixes (Laurent Vivier, Qing He)
+ * apic round robin delivery mode cleanup (Qing He)
+ * merge qemu-cvs
+ * fix compilation on older kernels (Rusty Russell, Avi Kivity)
+ * reduce tap networking latency
+ * fix FC6 x86_64 booting with -no-kvm
+ * fix code dump on exception
+
+= kvm-44 [23 sep 2007] =
+ * fix smp guest boot
+ * fix IDE emulation bug with newer guest kernels (S.Çağlar Onur)
+ * support VMware server as guest (Ryan Harper)
+ * fix smp race in shadow code (Izik Eidus)
+ * allow guest page faults to bypass kvm on Intel (performance boost)
+
+= kvm-43 [21 sep 2007] =
+
+ * fix ioapic edge-triggered interrupt handling
+
+= kvm-42 [20 sep 2007] =
+
+ * important host oops fix
+ * document -no-kvm-irqchip option in qemu help message (Carlo Marcelo Arenas Belon)
+ * acpi bios: export pci irqs as active high
+ * avoid redelivery of edge-triggered ioapic interrupts if already in service
+ * implement ioapic polarity
+ * fix x86 emulator merge problems (Nitin A Kamble, Laurent Vivier)
+ * fix x86 repne decoding (fixes OpenBSD boot regression) (Laurent Vivier)
+ * install kvm_para.h (Gerd Hoffman)
+
+= kvm-41 [19 sep 2007] =
+
+ * refactor hypercall infrastructure for simplicity and better smp support (Anthony Liguori)
+ * fix ioapic level triggered interrupt redelivers (solves networking stalls)
+ * reduce efer reloads with 32-bit guests; minor performance improvement
+ * split x86 emulator decode and execute stages (Laurent Vivier)
+ * fix pic interrupt delivery (solves time going double speed on x86_64 Linux guests) (Qing He)
+ * adaptive live migration bandwidth limits (Uri Lublin)
+
+= kvm-40 [16 sep 2007] =
+
+ * fix guest reboot (most scenarios)
+ * further x86 emulator work (Nitin A Kamble)
+ * compile fixes for older kernels
+ * make the external module work again
+
+= kvm-39 [12 sep 2007] =
+
+ * provide div64_64() for older kernels
+ * improve emulation failure reporting
+ * more x86 emulator work (push imm8, pushf, call near) (Nitin A Kamble)
+ * don't use TPR shadow on i386 (Sheng Yang)
+
+= kvm-38 [12 sep 2007] =
+
+ * fix fpu indication for Solaris (Amit Shah)
+ * Avoid GFP_NOWAIT allocation in mmu
+ * Fix runtime smp_processor_id() warning in lapic
+ * Move vcpu loop into subarch independent loop
+ * Rename kvm_arch_ops to kvm_x86_ops (Christian Ehrhardt)
+ * Fix missing "genapic" on i386 (Eddie Dong)
+ * Fix lapic hrtimer migration (Qing He)
+ * Fix lapic 64-bit division on i386 (Jindrich Makovicka)
+ * Simplify memory allocation ioctl (Laurent vivier)
+ * Keep control register shadows in sync (Rusty Russell)
+ * Retire invlpg (Rusty Russell)
+ * Expose get_cs_db_l_bits for kvm-lite (Rusty Russell)
+ * Fix network boot (Anthony Liguori)
+ * Round up memory in libkvm (Anthony Liguori)
+ * Fix option ROM loading (Anthony Liguori)
+ * Revert FACP ACPI change for Vista
+ * Fix segfault with -no-kvm
+ * lapic hrtimer external module compatibility (Qing He, Avi Kivity)
+ * improved (still imprefect) reboot
+ * better bios smp detection
+
+= kvm-37 [9 sep 2007] =
+
+ * in-kernel lapic, ioapic, and pic (Eddie Dong, Qing He, Sheng Yang, Gregory Haskins, Dor Laor, Avi Kivity)
+ * split segment reload (vmx microoptimization) (Laurent Vivier)
+ * fix vga redraw regression (Izik Eidus)
+ * fix testsuite compilation with older assemblers (H. Peter Anvin)
+
+= kvm-36 [22 aug 2007] =
+
+ * support guests with more than 2GB of RAM on 64-bit hosts (Izik Eidus)
+ * fix rare host oops on guest context switch
+ * avoid smp_call_function_single() warning on suspend/resume
+ * more real mode emulator work (Nitin A Kamble)
+ * Windows x64 support (Sheng Yang)
+ * close minor signal handling race
+ * carry bios in kvm source tree for easier maintenance
+ * fix -std-vga (Uri Lublin)
+ * advertise kvm in vnc window title (Matthew Kent)
+ * fix Windows SMP guests consuming cpu time when idle (Igor Lvovsky)
+
+= kvm-35 [15 aug 2007] =
+
+ * fix kvm refusing to load on Core processors (Glauber de Oliveira Costa)
+ * improve qemu monitor handling CR/LF sequences (Jim Paris)
+ * fix compile warning in qemu (Luca Tettamanti)
+
+= kvm-34 [13 aug 2007] =
+
+ * make kvm preemptible
+ * allow calling sleeping functions in the kvm exit handlers (Shaohua Li)
+ * this is a first step in getting guest swapping
+ * fix running kvm on nx-incapable host kernel on nx-capable hardware
+ * fix more fallback from the x86 emulator writeback changes (Aurelien Jarno, Avi Kivity)
+ * remove vmx specific code from subarch independent code (Gregory Haskins)
+ * allocate vcpus as needed (Rusty Russell)
+ * consolidate x86 emulator guest read/write code (Laurent Vivier)
+ * cleanup string pio instruction emulation (Laurent Vivier)
+ * ensure all cpus have the same vmx features (Sheng Yang)
+ * version string for external module
+ * disable long mode capability bit on 32-bit kernels
+ * fix qemu -isapc (Uri Lublin)
+ * fixes for smp live migration
+ * this is still raw
+ * fix unhandled wrmsr MSR_CSTAR on i386 (Luca Tettamanti)
+ * some migration fixes (Jim Paris)
+ * the usual cleanups and minor fixes (various but mostly Rusty)
+
+= kvm-33 [23 jul 2007] =
+
+ * fix massive performance regression
+
+= kvm-32 [23 jul 2007] =
+
+ * fix oops with the slub allocator (CONFIG_SLUB)
+ * fix cmov instruction emulation, trashed by the mmio rmw fix
+ * fix rare, silent data corruption on writes that cross a page boundary and touch a page table (Aurelien Jarno, Avi Kivity)
+ * fix race between vm creation and vcpu hotunplug (Rusty Russell)
+ * fix guest turning on pae with invalid pdptres (Rusty Russell)
+ * adapt external module to changed kmem_cache_create() api
+ * allow external module on 2.6.22 i386 nonpae
+ * fix regression in network throughput caused by guest smp changes (Aurelien Jarno, Avi Kivity)
+ * live migration updates (Uri Lublin)
+ * minor cleanups (Nguyen Anh Quynh, Avi Kivity)
+
+= kvm-31 [19 jul 2007] =
+
+ * a few cleanups that somehow evaded kvm-30 (Jeff Dike, Rusty Russell)
+ * allow the external module to compile on older kernels.
+
+= kvm-30 [19 jul 2007] =
+
+ * minor fixes and cleanups (Jeff Dike, Rusty Russell, Avi Kivity)
+ * kernel pio string write (Eddie Dong)
+ * guest smp kernel fixes
+ * rdmsr and wrmsr real mode emulation
+ * fix real mode shadow pages aliasing nx large page shadows
+ * enable guest smp in qemu
+ * fix external module installer
+ * revert ide enable changes that caused an I/O regression
+
+= kvm-29 [12 jul 2007] =
+
+ * live migration from 32-bit hosts to 64-bit hosts (Uri Lublin)
+ * monotonic timestamp counter on Intel
+ * more real mode support (Nitin A Kamble)
+ * infrastructure for in-kernel PIC and APIC (Gregory Haskins, Eddie Dong)
+ * fix read-modify-write to mmio (fixes F7 installer) (Luca Tettamanti)
+ * fix rebooting a long-running guest
+ * reliably detect if svm was disabled by bios (Joerg Roedel)
+ * suspend/resumes fixes (will not work with older kernels)
+ * fix nx confusion with large pages and real mode
+ * remove dependency on libuuid
+ * fix registers access in monitor/gdbstub (Anthony Liguori)
+ * minor fixes and cleanups (various)
+
+= kvm-28 [10 jun 2007] =
+
+ * fix host oops on guest context switch
+ * many code cleanups (Nguyen Anh Quynh, others)
+ * prepare kernel for guest smp
+ * update libkvm for guest smp
+ * update testsuite for guest smp
+ * emulate hlt in real mode (avoids crash when booting from unformatted disk)
+ * initialize ata ports for Fedora 7 guests (Luca Tettamanti)
+
+= kvm-27 [3 jun 2007] =
+
+ * use slab cache for mmu shadow pages
+ * make shadow pte updates atomic (for guest smp)
+ * general mmu cleanups
+
+= kvm-26 [27 may 2007] =
+
+ * implement wbinvd emulation, triggered by Windows Vista
+ * compile fixes (Markus Rechberger, Avi Kivity)
+
+= kvm-25 [24 may 2007] =
+
+ * massive performance increase (Eddie Dong)
+ * regenerate bios from latest bochs sources, hopefully fixing a regression with some guests
+ * some testsuite work (Anthony Lihuori, Eddie Dong, Avi Kivity)
+ * minor fixes (various)
+
+= kvm-24 [8 may 2007] =
+
+ * fix oops loading kvm-intel module on i386 with highmem
+
+= kvm-23 [7 may 2007] =
+
+ * OpenBSD 4.1 i386 support (Matthew Gregan)
+ * Fix host and guest crashes on reboot
+
+= kvm-22 [6 may 2007] =
+
+ * Significant performance improvements (Anthony Liguori, Eddie Dong, Qing He, Avi Kivity)
+ * Fix longstanding bug: time runs at double speed on x86_64 Linux (Qing He)
+ * Windows Vista 32-bit support (Qing He, Jun Nakajima)
+ * Support for kvm abi 10 modules
+ * Minor updates
+
+= kvm-21 [27 apr 2007] =
+
+ * fix regression on Core (not Core 2) processors
+ * performance improvements (Eddie Dong, Anthony Liguori)
+ * minor fixes
+
+= kvm-20 [24 apr 2007] =
+
+ * Windows 2000 support
+ * performance enhancements
+ * patch against latest kernel tree included in tarball
+ * fix oops with 32-bit nonpae guests
+
+= kvm-19 [16 apr 2007] =
+
+ * bug fixes
+ * memory aliasing api
+
+= kvm-18 [26 mar 2007] =
+
+ * merged new userspace API
+ * revert the optimization which killed some 32-bit Linux guests
+ * reboot support on Intel hosts (AMD are already supported)
+ * better timekeeping under load (Uri Lublin)
+ * other minor fixes and cleanups
+
+= kvm-17 [25 mar 2007] =
+
+ * live migration enhancements (Uri Lublin)
+ * better/working acpi support
+ * revert to unhacked qemu bios
+ * fix some 32-bit nonpae guests (*BSD)
+ * initial ballooning support
+ * random fixes
+
+= kvm-16 [7 mar 2007] =
+
+ * bug fixes (including a nasty one on module load)
+ * use lanana assigned minor device number for /dev/kvm
+
+= kvm-15 [26 feb 2007] =
+
+ * live migration with kvm (Uri Lublin)
+ * based on Anthony Liguori's qemu patches
+ * new userspace interface (work in progress)
+ * the usual random fixes
+
+= kvm-14 [19 feb 2007] =
+
+ * qemu 0.9.0
+ * too many goodies to list
+ * kvm can no longer share qemu's bios on Intel hosts due to real mode trouble. use the supplied bios.
+ * migration now based on Anthony Liguori's live migration patches (Uri Lublin)
+ * currently, only non-live migration is supported under kvm
+ * handle smi on host on AMD hosts (Joerg Roedel)
+ * random fixes
+
+= kvm-13 [8 feb 2007] =
+
+ * add dirty page tracking in some corner cases for live migration
+ * fix lockups on nx-challenged hosts
+ * host suspend/resume
+ * nobody's testing this, so it's probably broken
+ * host cpu hotplug support
+ * beginning of paravirt support (Ingo Molnar)
+ * guest reboot support (Markus Rechberger, Joerg Roedel)
+ * pio latency reduction (Anthony Liguori)
+ * stone age kernel compatibility (Markus Rechberger)
+ * the usual cleanups and stability fixes
+
+= kvm-12 [23 jan 2007] =
+
+ * More migration work (Uri Lublin)
+ * savevm/loadvm (and migration) work on AMD (Leonard Norrgard)
+ * More guest support
+ * mmu testsuite and fixes
+ * Windows ACPI install/run support (Dor Laor)
+ * Fix host reboot on guest reboot on AMD (Joerg Roedel)
+
+= kvm-11 [11 jan 2007] =
+
+ * stabilization fixes
+ * vmexit profiling (Ingo Molnar; requires Linux 2.6.20+)
+
+= kvm-10 [7 jan 2007] =
+
+ * more hypercall work
+ * cleanup irq handling
+ * shadow page table caching
+ * migration fixes
+ * stabilization fixes
+
+= kvm-9 [31 dec 2006] =
+
+ * API documentation (James Jacobsson)
+ * More stabilization fixes (Yoshimi Ichiyanagi, Ingo Molnar, Nguyen Anh Quynh)
+ * Interactivity improvements (Dor Laor)
+
+= kvm-8 [21 dec 2006] =
+
+ * msr fixes (Michael Riepe)
+ * more guest support (Michael Riepe)
+ * random fixes
+ * fpu state corruption fix on AMD hosts
+
+= kvm-7 [12 dec 2006] =
+
+ * prevent loading arch module on wrong hardware
+ * fix for macbooks
+ * other minor fixes
+
+= kvm-6 [11 dec 2006] =
+
+ * AMD 32-bit host support (Anthony Liguori)
+ * more migration work
+ * stabilization
+ * improved performance
+ * improved guest support on AMD
+
+= kvm-5 [28 nov 2006] =
+
+ * AMD SVM support (x86-64 hosts only)
+ * Preliminary live migration support
+ * 'make install' also installs kernel modules, if selected
+ * random fixes
+
+= kvm-4 [21 nov 2006] =
+
+ * added the msr work
+ * suspend/resume should work now
+ * more vmdk compatibility work
+ * random build updates
+
+= kvm-3 [15 nov 2006] =
+
+[Avi Kivity retained the natural number versioning after he contemplated the
+confusion that can arise from having releases 1, 2, and 0.3]
+
+Kernel module
+ * make exit reason numbers explicit
+ * sync kernel module with -mm tree
+ * asm constraint fixes
+ * userspace interface blurb
+ * segment restore across mode switch (fixes etherboot)
+ * segment asm constraint fix (Bernhard Rosenkraenzer)
+ * segment access cleanup
+
+libkvm:
+ * better error reporting (Simon Kagstrom)
+ * 'make clean'
+ * attributions and license
+
+kvmctl:
+ * add option to launch guest in 32-bit mode
+ * add test programs
+
+qemu/kvm:
+ * autodetect kvm presence (Simon Kagstrom)
+
+General
+ * fix host arch detection on debian
+ * fix ./configure on debian (Gildas)
+ * toplevel 'make clean'
+
+= ?? [9 nov 2006] =
+
+ * much easier to get running, see updated HOWTO
+ * now just one download, get yours while supplies last
+ * single qemu binary for kvm and non-kvm runs (Anthony Liguori)
+ * accompanying external kernel module package has all bugfixes folded in (plus a bit of cosmetics)
+
+= lkml submission v4 [5 nov 2006] =
+ * [http://lwn.net/Articles/207875/]
+ * detect msrs on host dynamically. Avoids oopses on non-ia32e capable processors.
+ * web site: http://kvm.sourceforge.net
+ * slightly rediffed
+
+= lkml submission v3 [26 oct 2006] =
+ * [http://uwsg.indiana.edu/hypermail/linux/kernel/0610.3/0747.html]
+ * mailing list: kvm-devel@public.gmane.org (http://lists.sourceforge.net/lists/listinfo/kvm-devel)
+ * applied code review comments
+ * fixed set_sregs() ioctl corrupting guest state if cr0.pe changed (a polite way of saying that loading a saved vm was broken)
+
+= lkml submission v2 [23 oct 2006] =
+ * [http://lwn.net/Articles/205580/]
+ * fixed a lockup on i386 with host memory >= 4GB
+ * finer patch split to conform to vger limits
+ * minor fixes
+ * send through script to avoid mailer damage
+
+= lkml submission v1 [19 oct 2006] =
+
+ * [http://lkml.org/lkml/2006/10/19/146]
--- kvm-84+dfsg.orig/debian/preinst
+++ kvm-84+dfsg/debian/preinst
@@ -0,0 +1,35 @@
+#!/bin/sh
+# Debian kvm package pre-installation script
+# Copyright (C) 2007 Leonard Norrgard, Refactor, Finland
+# Licensed under the GNU General Public License, version 2. See the file
+# /usr/share/common-licenses/GPL or .
+
+# Remove a no-longer used conffiles
+rm_existing_file() {
+ CHECK="$1"
+ FILENAME="$2"
+ if [ "$CHECK" "$FILENAME" ]; then
+ rm -f "$FILENAME"
+ fi
+}
+
+LASTVERSION=28-2
+case "$1" in
+install|upgrade)
+ if dpkg --compare-versions "$2" le "$LASTVERSION"; then
+ rm_existing_file -e "/etc/udev/kvm.rules"
+ rm_existing_file -L "/etc/udev/rules.d/z60_kvm.rules"
+ fi
+
+ if [ -e "/etc/udev/rules.d/45-kvm.rules" ]; then
+ if [ "`md5sum \"/etc/udev/rules.d/45-kvm.rules\" | sed -e \"s/ .*//\"`" = \
+ "`dpkg-query -W -f='${Conffiles}' kvm | sed -n -e \"\\\\' /etc/udev/rules.d/45-kvm.rules's/.* //p\"`" ]
+ then
+ rm -f "/etc/udev/rules.d/45-kvm.rules"
+ fi
+ fi
+esac
+
+#DEBHELPER#
+
+exit 0
--- kvm-84+dfsg.orig/debian/compat
+++ kvm-84+dfsg/debian/compat
@@ -0,0 +1 @@
+5
--- kvm-84+dfsg.orig/debian/kvm-source.links
+++ kvm-84+dfsg/debian/kvm-source.links
@@ -0,0 +1 @@
+usr/share/modass/packages/default.sh usr/share/modass/overrides/kvm-source
--- kvm-84+dfsg.orig/debian/kvm-source.postinst
+++ kvm-84+dfsg/debian/kvm-source.postinst
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+set -e
+
+PKG="kvm"
+# KVM versioning is "fun"
+PKGVER=`dpkg-query -W -f='${Version}' "$PKG"-source | cut -d: -f2 | cut -f1 -d+`
+
+case "$1" in
+ configure)
+ echo "Removing all [$PKG-$PKGVER] DKMS Modules"
+ dkms remove -m $PKG -v $PKGVER --all >/dev/null || true
+ echo "Done."
+ echo "Adding [$PKG-$PKGVER] Module to DKMS build system"
+ dkms add -m $PKG -v $PKGVER >/dev/null
+ if ! dpkg --status linux-headers-`uname -r` 2>/dev/null | grep -qs "Status: install ok installed"; then
+ flavor=`uname -r | sed "s/.*-//"`
+ echo
+ echo "*************************************************"
+ echo "ERROR: Missing kernel headers."
+ echo
+ echo "You appear to have at least some kernel headers"
+ echo "installed, but you do not have the necessary"
+ echo "headers to build $PKG-source against this kernel."
+ echo
+ echo "You might try installing the meta package:"
+ echo " $ sudo apt-get install linux-headers-$flavor"
+ echo "or specifically"
+ echo " $ sudo apt-get install linux-headers-"`uname -r`
+ echo "to obtain the necessary build dependencies."
+ echo
+ echo "*************************************************"
+ echo
+ exit 1
+ fi
+ echo "Doing initial module build"
+ dkms build -m $PKG -v $PKGVER >/dev/null
+ echo "Installing initial module"
+ dkms install -m $PKG -v $PKGVER >/dev/null
+ echo "Done."
+ ;;
+esac
+
+#DEBHELPER#
--- kvm-84+dfsg.orig/debian/source_kvm.py
+++ kvm-84+dfsg/debian/source_kvm.py
@@ -0,0 +1,12 @@
+'''apport package hook for kvm
+
+(c) 2009 Canonical Ltd.
+Author: Dustin Kirkland
+'''
+
+from apport.hookutils import *
+
+def add_info(report):
+ attach_hardware(report)
+ attach_related_packages(report, ['kvm*', '*libvirt*', 'virt-manager', 'qemu*'])
+ report['KvmCmdLine'] = command_output(['ps', '-C', 'kvm', '-F'])
--- kvm-84+dfsg.orig/debian/kvm-source.prerm
+++ kvm-84+dfsg/debian/kvm-source.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+set -e
+
+PKG="kvm"
+# KVM versioning is "fun"
+PKGVER=`dpkg-query -W -f='${Version}' "$PKG"-source | cut -d: -f2 | cut -f1 -d+`
+
+case "$1" in
+ remove|upgrade)
+ echo "Removing all [$PKG-$PKGVER] DKMS Modules"
+ dkms remove -m $PKG -v $PKGVER --all >/dev/null || true
+ echo "Done."
+ ;;
+esac
+
+#DEBHELPER#
--- kvm-84+dfsg.orig/debian/TODO
+++ kvm-84+dfsg/debian/TODO
@@ -0,0 +1,17 @@
+- Make the kvm-amd / kvm-intel modules load automatically when the kvm module
+ is inserted.
+
+- Fix the /etc/init.d/kvm script (see patch directory) and enable it in rules
+ This (as it is now) replaces eth0 with a switch sw0. Config questions to be
+ asked, possibly alternative default network setups supplied etc.
+
+- Create a kvm-doc package from the texinfo source of the full manual in
+ qemu/qemu-doc.texi. The kvm upstream for qemu-doc.texi isn't up to date with
+ the qemu upstream on the manual, though.
+
+- Create a kvm-dev package from the files that are currently removed in rules
+
+- Build the 3 etherboot images from source so we can include them here directly,
+ rather than suggesting the etherboot package.
+
+- Support for sound
--- kvm-84+dfsg.orig/debian/control
+++ kvm-84+dfsg/debian/control
@@ -0,0 +1,73 @@
+Source: kvm
+Section: misc
+Priority: optional
+XSBC-Original-Maintainer: Jan Lübbe
+Maintainer: Ubuntu Core Developers
+Build-Depends: debhelper (>= 7.0.17ubuntu2), pkg-config, quilt (>= 0.40), autotools-dev,
+ bzip2, uuid-dev, zlib1g-dev, libsdl1.2-dev, libasound2-dev, libgnutls-dev,
+ libncurses5-dev, libpulse-dev, nasm, texi2html, bcc, iasl, device-tree-compiler [powerpc],
+ sysv-rc (>= 2.86.ds1-14.1ubuntu2), libx11-dev
+Standards-Version: 3.8.0.0
+Homepage: http://kvm.qumranet.com/
+XS-Debian-Vcs-Browser: http://git.debian.org/?p=collab-maint/kvm.git;a=summary
+XS-Debian-Vcs-Git: git://git.debian.org/git/collab-maint/kvm.git
+
+Package: kvm
+Architecture: i386 amd64 powerpc ia64 s390 lpia
+Pre-Depends: adduser
+Depends: ${shlibs:Depends}, ${misc:Depends}, python, iproute, bridge-utils
+Suggests: ubuntu-vm-builder, hal, vde2, samba, kvm-source, kvm-pxe
+Conflicts: kvm-source (<= 18-1), kvm-data (<= 68+dsfg-1)
+Replaces: kvm-data (<= 68+dsfg-1)
+Breaks: udev (<< 136-1)
+Description: Full virtualization on i386 and amd64 hardware
+ Using KVM, one can run multiple virtual PCs, each running unmodified Linux or
+ Windows images. Each virtual machine has private virtualized hardware: a
+ network card, disk, graphics adapter, etc.
+ .
+ KVM (for Kernel-based Virtual Machine) is a full virtualization solution for
+ Linux hosts on x86 (32 and 64-bit) hardware.
+ .
+ KVM is intended for systems where the processor has hardware support for
+ virtualization, see below for details. All combinations of 32-bit and 64-bit
+ host and guest systems are supported, except 64-bit guests on 32-bit hosts.
+ .
+ KVM requires your system to support hardware virtualization, provided by AMD's
+ SVM capability or Intel's VT. To find out if your processor has the necessary
+ support, do as follows:
+ .
+ * Make sure you run Linux 2.6.16 or newer for AMD processors, or
+ Linux 2.6.15 for Intel processors. Older Linux versions do not report
+ the virtualization capabilities.
+ .
+ * Run this command in a shell: egrep '^flags.*(vmx|svm)' /proc/cpuinfo
+ .
+ If it prints anything, the processor provides hardware virtualization
+ support and is suitable for use with KVM.
+ .
+ Without hardware support, you can use qemu instead, possibly with the kqemu
+ package for better performance.
+ .
+ The recommended qemu package contains the script
+ /usr/sbin/qemu-make-debian-root, which uses debootstrap to build a Debian disk
+ image. See the man page for qemu-make-debian-root. The suggested hal package
+ is only used for automatically reporting the system bios version and computer
+ model when reporting bugs.
+ .
+ KVM consists of two loadable kernel modules (kvm.ko and either kvm-amd.ko or
+ kvm-intel.ko) and a userspace component. This package contains the userspace
+ component, and you can get the kernel modules from the standard kernel images
+ or build them yourself from the kvm-source package which provides the module
+ source.
+
+Package: kvm-source
+Architecture: all
+Depends: debhelper (>= 5), make, bzip2, dkms, linux-headers-server | linux-headers-generic | linux-headers
+Suggests: kernel-package
+Enhances: kvm
+Description: Source for the KVM driver
+ This package provides the source code for the KVM kernel modules.
+ The kvm package is also required in order to make use of these
+ modules. Kernel source or headers are required to compile these modules.
+ .
+ Not needed for Ubuntu systems.
--- kvm-84+dfsg.orig/debian/kvm.1
+++ kvm-84+dfsg/debian/kvm.1
@@ -0,0 +1,78 @@
+.\" Hey, EMACS: -*- nroff -*-
+.TH KVM 1 "2008-03-31"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+
+.SH NAME
+kvm \- x86 emulator with CPU VT support
+
+.SH SYNOPSIS
+.B kvm
+.RI [ options ] [ disk_image ]
+.SH OPTIONS
+.TP
+.B \-h
+Print a summary of all options.
+.TP
+.B -no-kvm
+Disable KVM hardware virtualization.
+.TP
+All other options
+The other options are similar to those of qemu.
+
+.SH DESCRIPTION
+.B kvm
+is based on qemu and its parameters are the same with the above
+additions, please see the kvm-qemu(1) manpage for instructions on how to
+run the program.
+
+.SH SETTING UP THE NETWORK
+In Debian, kvm uses the configuration script
+.I /etc/kvm/kvm-ifup
+to initialize the network for the virtual machine on the host side
+when starting a virtual machine. The default script sets up a virtual
+switch, so the guest appears to be on the same subnet as the host,
+which greatly simplifies setting up networking in the guest operating
+system. For example, if the IP adress of the host is 192.168.1.1, the
+guest could use 192.168.1.2, with a netmask of 255.255.255.0.
+
+To learn more about setting up the network, please refer to the
+following documents:
+.TP
+.BR "QEMU Documentation" " at"
+.I http://qemu.org/user-doc.html
+.TP
+.BR "Linux Networking-concepts" " at"
+.I http://www.netfilter.org/documentation/HOWTO/networking-concepts-HOWTO.html
+.TP
+.BR "Linux Networking HOWTO" " at"
+.I http://tldp.org/HOWTO/NET3-4-HOWTO.html
+.TP
+.BR "Linux Advanced Routing & Traffic Control HOWTO" " at"
+.I http://tldp.org/HOWTO/Adv-Routing-HOWTO/index.html
+
+.SH FILES
+.na
+.nf
+.BR "/etc/kvm/kvm-ifup" ", called at startup to configure the host-side network"
+.BR "/usr/share/kvm/" ", BIOS files are by default loaded from this directory"
+.BR "/usr/share/kvm/keymaps" ", keymap files"
+
+.SH SEE ALSO
+.BR "kvm-qemu" "(1), " "kvm-img" "(1)."
+.SH AUTHOR
+KVM was written by Avi Kivity from Qumranet.
+.PP
+This manual page was written by Baruch Even and
+Leonard Norrgard for the Debian project (but may
+be used by others).
--- kvm-84+dfsg.orig/debian/kvm.udev
+++ kvm-84+dfsg/debian/kvm.udev
@@ -0,0 +1 @@
+KERNEL=="kvm", NAME="%k", GROUP="kvm", MODE="0660"
--- kvm-84+dfsg.orig/debian/watch
+++ kvm-84+dfsg/debian/watch
@@ -0,0 +1,3 @@
+version=3
+opts=dversionmangle=s/\+dfsg.*$// \
+ http://qa.debian.org/watch/sf.php/kvm/ kvm-(\d*).tar.gz
--- kvm-84+dfsg.orig/debian/org.freedesktop.hal.kvm.policy
+++ kvm-84+dfsg/debian/org.freedesktop.hal.kvm.policy
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+ Directly access virtualization acceleration hardware
+ System policy prevents access to the virtualization device
+
+ yes
+ yes
+
+
+
+
+
--- kvm-84+dfsg.orig/debian/patches/series
+++ kvm-84+dfsg/debian/patches/series
@@ -0,0 +1,14 @@
+CVE-2008-0928.patch
+evdev_keycode_map.patch
+dkmsify.patch
+net-socket.patch
+rename_qemu_kvm.patch
+fix_screen_corruption.patch
+virtio-net_disable_gso.patch
+add-all-virtio-drives.patch
+fix-qcow-corruption.patch
+0001-Refactor-aio-callback-allocation-to-use-an-aiocb-poo.patch
+0002-Convert-vectored-aio-emulation-to-use-a-dedicated-po.patch
+0003-Implement-cancellation-method-for-dma-async-I-O-Avi.patch
+0004-Use-vectored-aiocb-storage-to-store-vector-translati.patch
+0005-Move-block-dma-helpers-aiocb-to-store-dma-state-Avi.patch
--- kvm-84+dfsg.orig/debian/patches/virtio-net_disable_gso.patch
+++ kvm-84+dfsg/debian/patches/virtio-net_disable_gso.patch
@@ -0,0 +1,41 @@
+Work around broken virtio drivers in 2.6.26
+
+Signed-off-by: Anthony Liguori
+
+diff --git a/qemu/hw/virtio-net.c b/qemu/hw/virtio-net.c
+index 9bce3a0..5b615f9 100644
+--- a/qemu/hw/virtio-net.c
++++ b/qemu/hw/virtio-net.c
+@@ -120,6 +120,9 @@ static uint32_t virtio_net_get_features(VirtIODevice *vdev)
+
+ if (tap_has_vnet_hdr(host)) {
+ tap_using_vnet_hdr(host, 1);
++#if 0
++ /* Stop advertising advanced features until we work around the fact
++ * that this is totally broken in 2.6.26 kernels */
+ features |= (1 << VIRTIO_NET_F_CSUM);
+ features |= (1 << VIRTIO_NET_F_GUEST_CSUM);
+ features |= (1 << VIRTIO_NET_F_GUEST_TSO4);
+@@ -130,6 +133,7 @@ static uint32_t virtio_net_get_features(VirtIODevice *vdev)
+ features |= (1 << VIRTIO_NET_F_HOST_ECN);
+ features |= (1 << VIRTIO_NET_F_MRG_RXBUF);
+ /* Kernel can't actually handle UFO in software currently. */
++#endif
+ }
+ #endif
+
+@@ -374,8 +378,14 @@ static int receive_header(VirtIONet *n, struct iovec *iov, int iovcnt,
+ struct virtio_net_hdr *hdr = iov[0].iov_base;
+ int offset = 0;
+
++#if 0
+ hdr->flags = 0;
+ hdr->gso_type = VIRTIO_NET_HDR_GSO_NONE;
++#else
++ /* we need to clear out the whole header, including any garbage that may be
++ */
++ memset(hdr, 0, sizeof(*hdr));
++#endif
+
+ #ifdef TAP_VNET_HDR
+ if (tap_has_vnet_hdr(n->vc->vlan->first_client)) {
--- kvm-84+dfsg.orig/debian/patches/rename_qemu_kvm.patch
+++ kvm-84+dfsg/debian/patches/rename_qemu_kvm.patch
@@ -0,0 +1,49 @@
+This patch handles the renaming of qemu to kvm for Ubuntu packaging
+purposes.
+
+This patch should 'go away' when qemu replaces kvm's userspace
+package.
+
+Ask Dustin Kirkland if unsure ;-)
+
+
+
+--- a/qemu/configure.orig
++++ b/qemu/configure
+@@ -666,7 +666,7 @@
+ prefix="/usr/local"
+ fi
+ mansuffix="/share/man"
+- datasuffix="/share/qemu"
++ datasuffix="/share/kvm"
+ docsuffix="/share/doc/qemu"
+ binsuffix="/bin"
+ fi
+
+Use an independent script to control the network at startup.
+
+--- a/qemu/net.h.orig 2009-01-08 15:07:37.222078188 -0600
++++ b/qemu/net.h 2009-01-08 15:07:54.374564957 -0600
+@@ -94,8 +94,8 @@ void net_cleanup(void);
+ int slirp_is_inited(void);
+ void net_client_check(void);
+
+-#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup"
+-#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown"
++#define DEFAULT_NETWORK_SCRIPT "/etc/kvm-ifup"
++#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/kvm-ifdown"
+ #ifdef __sun__
+ #define SMBD_COMMAND "/usr/sfw/sbin/smbd"
+ #else
+
+--- a/qemu/configure
++++ b/qemu/configure
+@@ -667,7 +667,7 @@
+ fi
+ mansuffix="/share/man"
+ datasuffix="/share/kvm"
+- docsuffix="/share/doc/qemu"
++ docsuffix="/share/doc/kvm"
+ binsuffix="/bin"
+ fi
+
--- kvm-84+dfsg.orig/debian/patches/evdev_keycode_map.patch
+++ kvm-84+dfsg/debian/patches/evdev_keycode_map.patch
@@ -0,0 +1,219 @@
+# This code was ported from gtk-vnc, to handle evdev keycode mapping by
+# Dustin Kirkland , 24 September 2008.
+
+
+--- kvm-72+dfsg/qemu/configure 2008-07-27 08:20:10.000000000 -0500
++++ kvm-72+dfsg/qemu/configure 2008-09-24 16:04:28.036791147 -0500
+@@ -1198,9 +1198,9 @@ if test "$sdl1" = "yes" ; then
+ echo "#define CONFIG_SDL 1" >> $config_h
+ echo "CONFIG_SDL=yes" >> $config_mak
+ if test "$target_softmmu" = "no" -o "$static" = "yes"; then
+- echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
++ echo "SDL_LIBS=-lX11 $sdl_static_libs" >> $config_mak
+ else
+- echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
++ echo "SDL_LIBS=-lX11 `$sdl_config --libs`" >> $config_mak
+ fi
+ if [ "${aa}" = "yes" ] ; then
+ echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
+--- kvm-72+dfsg/qemu/sdl.c 2008-07-27 05:08:56.000000000 -0500
++++ kvm-72+dfsg/qemu/sdl.c 2008-09-24 16:39:19.713788782 -0500
+@@ -132,21 +132,7 @@ static uint8_t sdl_keyevent_to_keycode(c
+
+ static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev)
+ {
+- int keycode;
+-
+- keycode = ev->keysym.scancode;
+-
+- if (keycode < 9) {
+- keycode = 0;
+- } else if (keycode < 97) {
+- keycode -= 8; /* just an offset */
+- } else if (keycode < 212) {
+- /* use conversion table */
+- keycode = _translate_keycode(keycode - 97);
+- } else {
+- keycode = 0;
+- }
+- return keycode;
++ return _translate_keycode(ev->keysym.scancode);
+ }
+
+ #endif
+--- kvm-72+dfsg/qemu/x_keymap.c 2008-07-27 05:08:56.000000000 -0500
++++ kvm-72+dfsg/qemu/x_keymap.c 2008-09-24 16:52:27.262129702 -0500
+@@ -24,7 +24,15 @@
+ #include "qemu-common.h"
+ #include "console.h"
+
+-static const uint8_t x_keycode_to_pc_keycode[115] = {
++#include
++#include
++#include
++#include
++
++#define TRUE 1
++#define FALSE 0
++
++static const uint8_t x_keycode_to_pc_keycode[61] = {
+ 0xc7, /* 97 Home */
+ 0xc8, /* 98 Up */
+ 0xc9, /* 99 PgUp */
+@@ -86,27 +94,136 @@ static const uint8_t x_keycode_to_pc_key
+ 0x51, /* 155 KP_PgDn */
+ 0x52, /* 156 KP_Ins */
+ 0x53, /* 157 KP_Del */
+- 0x0, /* 158 */
+- 0x0, /* 159 */
+- 0x0, /* 160 */
+- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 170 */
+- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 180 */
+- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 190 */
+- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 200 */
+- 0x0, /* 201 */
+- 0x0, /* 202 */
+- 0x0, /* 203 */
+- 0x0, /* 204 */
+- 0x0, /* 205 */
+- 0x0, /* 206 */
+- 0x0, /* 207 */
+- 0x70, /* 208 Hiragana_Katakana */
+- 0x0, /* 209 */
+- 0x0, /* 210 */
+- 0x73, /* 211 backslash */
+ };
+
+-uint8_t _translate_keycode(const int key)
++/* This code was ported from gtk-vnc, to handle evdev keycode mapping by
++ * Dustin Kirkland , 24 September 2008.
++ *
++ * This table was put together by VirtualBox. It's based on the information in
++ * /usr/share/X11/xkb/keycodes/evdev using the x_keycode_to_pc_keycode table
++ * to get the pc keycodes.
++ */
++
++static const uint8_t evdev_keycode_to_pc_keycode[61] = {
++ 0x0, /* 97 EVDEV - RO ("Internet" Keyboards) */
++ 0x0, /* 98 EVDEV - KATA (Katakana) */
++ 0x0, /* 99 EVDEV - HIRA (Hiragana) */
++ 0x79, /* 100 EVDEV - HENK (Henkan) */
++ 0x70, /* 101 EVDEV - HKTG (Hiragana/Katakana toggle) */
++ 0x7b, /* 102 EVDEV - MUHE (Muhenkan) */
++ 0x0, /* 103 EVDEV - JPCM (KPJPComma) */
++ 0x9c, /* 104 EVDEV - KPEN */
++ 0x9d, /* 105 EVDEV - RCTL */
++ 0xb5, /* 106 EVDEV - KPDV */
++ 0xb7, /* 107 EVDEV - PRSC ***FIXME*** */
++ 0xb8, /* 108 EVDEV - RALT */
++ 0x0, /* 109 EVDEV - LNFD ("Internet" Keyboards) */
++ 0xc7, /* 110 EVDEV - HOME ***FIXME*** */
++ 0xc8, /* 111 EVDEV - UP */
++ 0xc9, /* 112 EVDEV - PGUP */
++ 0xcb, /* 113 EVDEV - LEFT */
++ 0xcd, /* 114 EVDEV - RGHT */
++ 0xcf, /* 115 EVDEV - END */
++ 0xd0, /* 116 EVDEV - DOWN */
++ 0xd1, /* 117 EVDEV - PGDN */
++ 0xd2, /* 118 EVDEV - INS */
++ 0xd3, /* 119 EVDEV - DELE */
++ 0x0, /* 120 EVDEV - I120 ("Internet" Keyboards) */
++ 0x0, /* 121 EVDEV - MUTE */
++ 0x0, /* 122 EVDEV - VOL- */
++ 0x0, /* 123 EVDEV - VOL+ */
++ 0x0, /* 124 EVDEV - POWR */
++ 0x0, /* 125 EVDEV - KPEQ */
++ 0x0, /* 126 EVDEV - I126 ("Internet" Keyboards) */
++ 0x0, /* 127 EVDEV - PAUS */
++ 0x0, /* 128 EVDEV - ???? */
++ 0x0, /* 129 EVDEV - I129 ("Internet" Keyboards) */
++ 0xf1, /* 130 EVDEV - HNGL (Korean Hangul Latin toggle) */
++ 0xf2, /* 131 EVDEV - HJCV (Korean Hangul Hanja toggle) */
++ 0x7d, /* 132 EVDEV - AE13 (Yen) */
++ 0xdb, /* 133 EVDEV - LWIN */
++ 0xdc, /* 134 EVDEV - RWIN */
++ 0xdd, /* 135 EVDEV - MENU */
++ 0x0, /* 136 EVDEV - STOP */
++ 0x0, /* 137 EVDEV - AGAI */
++ 0x0, /* 138 EVDEV - PROP */
++ 0x0, /* 139 EVDEV - UNDO */
++ 0x0, /* 140 EVDEV - FRNT */
++ 0x0, /* 141 EVDEV - COPY */
++ 0x0, /* 142 EVDEV - OPEN */
++ 0x0, /* 143 EVDEV - PAST */
++ 0x0, /* 144 EVDEV - FIND */
++ 0x0, /* 145 EVDEV - CUT */
++ 0x0, /* 146 EVDEV - HELP */
++ 0x0, /* 147 EVDEV - I147 */
++ 0x0, /* 148 EVDEV - I148 */
++ 0x0, /* 149 EVDEV - I149 */
++ 0x0, /* 150 EVDEV - I150 */
++ 0x0, /* 151 EVDEV - I151 */
++ 0x0, /* 152 EVDEV - I152 */
++ 0x0, /* 153 EVDEV - I153 */
++ 0x0, /* 154 EVDEV - I154 */
++ 0x0, /* 155 EVDEV - I156 */
++ 0x0, /* 156 EVDEV - I157 */
++ 0x0, /* 157 EVDEV - I158 */
++};
++
++static bool strstarts(const char *lhs, const char *rhs)
++{
++ if (strlen(lhs) < strlen(rhs))
++ return false;
++ return memcmp(lhs, rhs, strlen(rhs)) == 0;
++}
++
++static bool check_for_evdev(void)
++{
++ SDL_SysWMinfo info;
++ XkbDescPtr desc = NULL;
++ bool has_evdev = FALSE;
++ const char *keycodes;
++
++ SDL_VERSION(&info.version);
++ if (!SDL_GetWMInfo(&info))
++ goto out;
++
++ desc = XkbGetKeyboard (info.info.x11.display,
++ XkbAllComponentsMask,
++ XkbUseCoreKbd);
++ if (!desc)
++ goto out;
++
++ keycodes = XGetAtomName(info.info.x11.display, desc->names->keycodes);
++ if (keycodes == NULL)
++ fprintf(stderr, "qemu: warning: could not lookup keycode name\n");
++ else if (strstarts(keycodes, "evdev_"))
++ has_evdev = TRUE;
++ else if (!strstarts(keycodes, "xfree86_"))
++ fprintf(stderr, "qemu: warning: unknown keycodes `%s'\n", keycodes);
++
++ XkbFreeClientMap(desc, XkbGBN_AllComponentsMask, True);
++
++out:
++ return has_evdev;
++}
++
++
++uint8_t _translate_keycode(int keycode)
+ {
+- return x_keycode_to_pc_keycode[key];
++ if (keycode < 9)
++ keycode = 0;
++ else if (keycode < 97)
++ keycode -= 8; /* just an offset */
++ else if (keycode < 158) {
++ if (check_for_evdev())
++ keycode = evdev_keycode_to_pc_keycode[keycode - 97];
++ else
++ keycode = x_keycode_to_pc_keycode[keycode - 97];
++ } else if (keycode == 208) /* Hiragana_Katakana */
++ keycode = 0x70;
++ else if (keycode == 211) /* backslash */
++ keycode = 0x73;
++ else
++ keycode = 0;
++
++ return keycode;
+ }
--- kvm-84+dfsg.orig/debian/patches/0005-Move-block-dma-helpers-aiocb-to-store-dma-state-Avi.patch
+++ kvm-84+dfsg/debian/patches/0005-Move-block-dma-helpers-aiocb-to-store-dma-state-Avi.patch
@@ -0,0 +1,137 @@
+From 82aa3e8ddba30f1d392f4af78bfb79f1a3b58730 Mon Sep 17 00:00:00 2001
+From: aliguori
+Date: Fri, 20 Mar 2009 18:26:16 +0000
+Subject: [PATCH] Move block dma helpers aiocb to store dma state (Avi Kivity)
+
+Use the dedicated dma aiocb to store intermediate state for dma block
+transactions.
+
+Signed-off-by: Avi Kivity
+Signed-off-by: Anthony Liguori
+---
+ qemu/dma-helpers.c | 37 ++++++++++++++++++++-----------------
+ 1 files changed, 20 insertions(+), 17 deletions(-)
+
+diff --git a/qemu/dma-helpers.c b/qemu/dma-helpers.c
+index 19fa4f0..96a120c 100644
+--- a/qemu/dma-helpers.c
++++ b/qemu/dma-helpers.c
+@@ -39,6 +39,7 @@ void qemu_sglist_destroy(QEMUSGList *qsg)
+ }
+
+ typedef struct {
++ BlockDriverAIOCB common;
+ BlockDriverState *bs;
+ BlockDriverAIOCB *acb;
+ QEMUSGList *sg;
+@@ -48,13 +49,13 @@ typedef struct {
+ target_phys_addr_t sg_cur_byte;
+ QEMUIOVector iov;
+ QEMUBH *bh;
+-} DMABlockState;
++} DMAAIOCB;
+
+ static void dma_bdrv_cb(void *opaque, int ret);
+
+ static void reschedule_dma(void *opaque)
+ {
+- DMABlockState *dbs = (DMABlockState *)opaque;
++ DMAAIOCB *dbs = (DMAAIOCB *)opaque;
+
+ qemu_bh_delete(dbs->bh);
+ dbs->bh = NULL;
+@@ -63,7 +64,7 @@ static void reschedule_dma(void *opaque)
+
+ static void continue_after_map_failure(void *opaque)
+ {
+- DMABlockState *dbs = (DMABlockState *)opaque;
++ DMAAIOCB *dbs = (DMAAIOCB *)opaque;
+
+ dbs->bh = qemu_bh_new(reschedule_dma, dbs);
+ qemu_bh_schedule(dbs->bh);
+@@ -71,11 +72,12 @@ static void continue_after_map_failure(void *opaque)
+
+ static void dma_bdrv_cb(void *opaque, int ret)
+ {
+- DMABlockState *dbs = (DMABlockState *)opaque;
++ DMAAIOCB *dbs = (DMAAIOCB *)opaque;
+ target_phys_addr_t cur_addr, cur_len;
+ void *mem;
+ int i;
+
++ dbs->acb = NULL;
+ dbs->sector_num += dbs->iov.size / 512;
+ for (i = 0; i < dbs->iov.niov; ++i) {
+ cpu_physical_memory_unmap(dbs->iov.iov[i].iov_base,
+@@ -85,10 +87,9 @@ static void dma_bdrv_cb(void *opaque, int ret)
+ qemu_iovec_reset(&dbs->iov);
+
+ if (dbs->sg_cur_index == dbs->sg->nsg || ret < 0) {
+- dbs->acb->cb(dbs->acb->opaque, ret);
++ dbs->common.cb(dbs->common.opaque, ret);
+ qemu_iovec_destroy(&dbs->iov);
+- qemu_aio_release(dbs->acb);
+- qemu_free(dbs);
++ qemu_aio_release(dbs);
+ return;
+ }
+
+@@ -112,11 +113,11 @@ static void dma_bdrv_cb(void *opaque, int ret)
+ }
+
+ if (dbs->is_write) {
+- bdrv_aio_writev(dbs->bs, dbs->sector_num, &dbs->iov,
+- dbs->iov.size / 512, dma_bdrv_cb, dbs);
++ dbs->acb = bdrv_aio_writev(dbs->bs, dbs->sector_num, &dbs->iov,
++ dbs->iov.size / 512, dma_bdrv_cb, dbs);
+ } else {
+- bdrv_aio_readv(dbs->bs, dbs->sector_num, &dbs->iov,
+- dbs->iov.size / 512, dma_bdrv_cb, dbs);
++ dbs->acb = bdrv_aio_readv(dbs->bs, dbs->sector_num, &dbs->iov,
++ dbs->iov.size / 512, dma_bdrv_cb, dbs);
+ }
+ }
+
+@@ -125,10 +126,10 @@ static BlockDriverAIOCB *dma_bdrv_io(
+ BlockDriverCompletionFunc *cb, void *opaque,
+ int is_write)
+ {
+- DMABlockState *dbs = qemu_malloc(sizeof(*dbs));
++ DMAAIOCB *dbs = qemu_aio_get_pool(&dma_aio_pool, bs, cb, opaque);
+
++ dbs->acb = NULL;
+ dbs->bs = bs;
+- dbs->acb = qemu_aio_get_pool(&dma_aio_pool, bs, cb, opaque);
+ dbs->sg = sg;
+ dbs->sector_num = sector_num;
+ dbs->sg_cur_index = 0;
+@@ -137,7 +138,7 @@ static BlockDriverAIOCB *dma_bdrv_io(
+ dbs->bh = NULL;
+ qemu_iovec_init(&dbs->iov, sg->nsg);
+ dma_bdrv_cb(dbs, 0);
+- return dbs->acb;
++ return &dbs->common;
+ }
+
+
+@@ -157,12 +158,14 @@ BlockDriverAIOCB *dma_bdrv_write(BlockDriverState *bs,
+
+ static void dma_aio_cancel(BlockDriverAIOCB *acb)
+ {
+- DMABlockState *dbs = (DMABlockState *)acb->opaque;
++ DMAAIOCB *dbs = container_of(acb, DMAAIOCB, common);
+
+- bdrv_aio_cancel(dbs->acb);
++ if (dbs->acb) {
++ bdrv_aio_cancel(dbs->acb);
++ }
+ }
+
+ void dma_helper_init(void)
+ {
+- aio_pool_init(&dma_aio_pool, sizeof(BlockDriverAIOCB), dma_aio_cancel);
++ aio_pool_init(&dma_aio_pool, sizeof(DMAAIOCB), dma_aio_cancel);
+ }
+--
+1.6.0.4
+
--- kvm-84+dfsg.orig/debian/patches/CVE-2008-0928.patch
+++ kvm-84+dfsg/debian/patches/CVE-2008-0928.patch
@@ -0,0 +1,260 @@
+diff -uprN kvm_84+dfsg/qemu/block.c kvm_84+dfsg.new/qemu/block.c
+--- kvm_84+dfsg/qemu/block.c 2009-02-12 09:19:26.000000000 -0600
++++ kvm_84+dfsg.new/qemu/block.c 2009-02-16 16:10:20.835868945 -0600
+@@ -31,6 +31,7 @@
+ #include "console.h"
+ #include "block_int.h"
+ #include "osdep.h"
++extern int vm_running;
+
+ #ifdef _BSD
+ #include
+@@ -128,6 +129,75 @@ void path_combine(char *dest, int dest_s
+ }
+ }
+
++static int bdrv_rd_badreq_sectors(BlockDriverState *bs,
++ int64_t sector_num, int nb_sectors)
++{
++ if (!vm_running)
++ return 0;
++
++ return
++ nb_sectors < 0 ||
++ sector_num < 0 ||
++ nb_sectors > bs->total_sectors ||
++ sector_num > bs->total_sectors - nb_sectors;
++}
++
++static int bdrv_rd_badreq_bytes(BlockDriverState *bs,
++ int64_t offset, int count)
++{
++ int64_t size = bs->total_sectors << SECTOR_BITS;
++
++ if (!vm_running)
++ return 0;
++
++ return
++ count < 0 ||
++ size < 0 ||
++ count > size ||
++ offset > size - count;
++}
++
++static int bdrv_wr_badreq_sectors(BlockDriverState *bs,
++ int64_t sector_num, int nb_sectors)
++{
++
++ if (!vm_running)
++ return 0;
++
++ if (sector_num < 0 ||
++ nb_sectors < 0)
++ return 1;
++
++ if (sector_num > bs->total_sectors - nb_sectors) {
++ if (bs->autogrow)
++ bs->total_sectors = sector_num + nb_sectors;
++ else
++ return 1;
++ }
++ return 0;
++}
++
++static int bdrv_wr_badreq_bytes(BlockDriverState *bs,
++ int64_t offset, int count)
++{
++ int64_t size = bs->total_sectors << SECTOR_BITS;
++
++ if (!vm_running)
++ return 0;
++
++ if (count < 0 ||
++ offset < 0)
++ return 1;
++
++ if (offset > size - count) {
++ if (bs->autogrow)
++ bs->total_sectors = (offset + count + SECTOR_SIZE - 1) >> SECTOR_BITS;
++ else
++ return 1;
++ }
++ return 0;
++}
++
+
+ static void bdrv_register(BlockDriver *bdrv)
+ {
+@@ -338,6 +408,10 @@ int bdrv_open2(BlockDriverState *bs, con
+ bs->read_only = 0;
+ bs->is_temporary = 0;
+ bs->encrypted = 0;
++ bs->autogrow = 0;
++
++ if (flags & BDRV_O_AUTOGROW)
++ bs->autogrow = 1;
+
+ if (flags & BDRV_O_SNAPSHOT) {
+ BlockDriverState *bs1;
+@@ -394,6 +468,7 @@ int bdrv_open2(BlockDriverState *bs, con
+ }
+ bs->drv = drv;
+ bs->opaque = qemu_mallocz(drv->instance_size);
++ bs->total_sectors = 0; /* driver will set if it does not do getlength */
+ /* Note: for compatibility, we open disk image files as RDWR, and
+ RDONLY as fallback */
+ if (!(flags & BDRV_O_FILE))
+@@ -457,6 +532,7 @@ void bdrv_close(BlockDriverState *bs)
+ bs->drv = NULL;
+
+ /* call the change callback */
++ bs->total_sectors = 0;
+ bs->media_changed = 1;
+ if (bs->change_cb)
+ bs->change_cb(bs->change_opaque);
+@@ -529,6 +605,8 @@ int bdrv_read(BlockDriverState *bs, int6
+ if (!drv)
+ return -ENOMEDIUM;
+
++ if (bdrv_rd_badreq_sectors(bs, sector_num, nb_sectors))
++ return -EDOM;
+ if (drv->bdrv_pread) {
+ int ret, len;
+ len = nb_sectors * 512;
+@@ -561,6 +639,8 @@ int bdrv_write(BlockDriverState *bs, int
+ return -ENOMEDIUM;
+ if (bs->read_only)
+ return -EACCES;
++ if (bdrv_wr_badreq_sectors(bs, sector_num, nb_sectors))
++ return -EDOM;
+ if (drv->bdrv_pwrite) {
+ int ret, len, count = 0;
+ len = nb_sectors * 512;
+@@ -684,6 +764,8 @@ int bdrv_pread(BlockDriverState *bs, int
+ return -ENOMEDIUM;
+ if (!drv->bdrv_pread)
+ return bdrv_pread_em(bs, offset, buf1, count1);
++ if (bdrv_rd_badreq_bytes(bs, offset, count1))
++ return -EDOM;
+ return drv->bdrv_pread(bs, offset, buf1, count1);
+ }
+
+@@ -699,6 +781,8 @@ int bdrv_pwrite(BlockDriverState *bs, in
+ return -ENOMEDIUM;
+ if (!drv->bdrv_pwrite)
+ return bdrv_pwrite_em(bs, offset, buf1, count1);
++ if (bdrv_wr_badreq_bytes(bs, offset, count1))
++ return -EDOM;
+ return drv->bdrv_pwrite(bs, offset, buf1, count1);
+ }
+
+@@ -1120,6 +1204,8 @@ int bdrv_write_compressed(BlockDriverSta
+ return -ENOMEDIUM;
+ if (!drv->bdrv_write_compressed)
+ return -ENOTSUP;
++ if (bdrv_wr_badreq_sectors(bs, sector_num, nb_sectors))
++ return -EDOM;
+ return drv->bdrv_write_compressed(bs, sector_num, buf, nb_sectors);
+ }
+
+@@ -1329,6 +1415,8 @@ BlockDriverAIOCB *bdrv_aio_read(BlockDri
+
+ if (!drv)
+ return NULL;
++ if (bdrv_rd_badreq_sectors(bs, sector_num, nb_sectors))
++ return NULL;
+
+ ret = drv->bdrv_aio_read(bs, sector_num, buf, nb_sectors, cb, opaque);
+
+@@ -1353,6 +1441,9 @@ BlockDriverAIOCB *bdrv_aio_write(BlockDr
+ if (bs->read_only)
+ return NULL;
+
++ if (bdrv_wr_badreq_sectors(bs, sector_num, nb_sectors))
++ return NULL;
++
+ ret = drv->bdrv_aio_write(bs, sector_num, buf, nb_sectors, cb, opaque);
+
+ if (ret) {
+diff -uprN kvm_84+dfsg/qemu/block.h kvm_84+dfsg.new/qemu/block.h
+--- kvm_84+dfsg/qemu/block.h 2009-02-12 09:19:26.000000000 -0600
++++ kvm_84+dfsg.new/qemu/block.h 2009-02-16 16:09:52.403820950 -0600
+@@ -53,6 +53,7 @@ typedef struct QEMUSnapshotInfo {
+ #define BDRV_O_NOCACHE 0x0020 /* do not use the host page cache */
+ #define BDRV_O_CACHE_WB 0x0040 /* use write-back caching */
+ #define BDRV_O_CACHE_DEF 0x0080 /* use default caching */
++#define BDRV_O_AUTOGROW 0x0100 /* Allow backing file to extend when writing past end of file */
+
+ #define BDRV_O_CACHE_MASK (BDRV_O_NOCACHE | BDRV_O_CACHE_WB | BDRV_O_CACHE_DEF)
+
+diff -uprN kvm_84+dfsg/qemu/block_int.h kvm_84+dfsg.new/qemu/block_int.h
+--- kvm_84+dfsg/qemu/block_int.h 2009-02-12 09:19:26.000000000 -0600
++++ kvm_84+dfsg.new/qemu/block_int.h 2009-02-16 16:09:52.399796416 -0600
+@@ -97,6 +97,7 @@ struct BlockDriverState {
+ int locked; /* if true, the media cannot temporarily be ejected */
+ int encrypted; /* if true, the media is encrypted */
+ int sg; /* if true, the device is a /dev/sg* */
++ int autogrow; /* if true, the backing store can auto-extend to allocate new extents */
+ /* event callback when inserting/removing */
+ void (*change_cb)(void *opaque);
+ void *change_opaque;
+diff -uprN kvm_84+dfsg/qemu/block-qcow2.c kvm_84+dfsg.new/qemu/block-qcow2.c
+--- kvm_84+dfsg/qemu/block-qcow2.c 2009-02-12 09:19:26.000000000 -0600
++++ kvm_84+dfsg.new/qemu/block-qcow2.c 2009-02-16 16:09:52.403820950 -0600
+@@ -203,7 +203,7 @@ static int qcow_open(BlockDriverState *b
+ flags |= BDRV_O_CACHE_WB;
+ flags &= ~BDRV_O_CACHE_DEF;
+ }
+- ret = bdrv_file_open(&s->hd, filename, flags);
++ ret = bdrv_file_open(&s->hd, filename, flags | BDRV_O_AUTOGROW);
+ if (ret < 0)
+ return ret;
+ if (bdrv_pread(s->hd, 0, &header, sizeof(header)) != sizeof(header))
+diff -uprN kvm_84+dfsg/qemu/block-qcow.c kvm_84+dfsg.new/qemu/block-qcow.c
+--- kvm_84+dfsg/qemu/block-qcow.c 2009-02-12 09:19:26.000000000 -0600
++++ kvm_84+dfsg.new/qemu/block-qcow.c 2009-02-16 16:09:52.399796416 -0600
+@@ -95,7 +95,7 @@ static int qcow_open(BlockDriverState *b
+ int len, i, shift, ret;
+ QCowHeader header;
+
+- ret = bdrv_file_open(&s->hd, filename, flags);
++ ret = bdrv_file_open(&s->hd, filename, flags | BDRV_O_AUTOGROW);
+ if (ret < 0)
+ return ret;
+ if (bdrv_pread(s->hd, 0, &header, sizeof(header)) != sizeof(header))
+diff -uprN kvm_84+dfsg/qemu/block-vmdk.c kvm_84+dfsg.new/qemu/block-vmdk.c
+--- kvm_84+dfsg/qemu/block-vmdk.c 2009-02-12 09:19:26.000000000 -0600
++++ kvm_84+dfsg.new/qemu/block-vmdk.c 2009-02-16 16:09:52.399796416 -0600
+@@ -373,7 +373,7 @@ static int vmdk_open(BlockDriverState *b
+ // Parent must be opened as RO.
+ flags = BDRV_O_RDONLY;
+
+- ret = bdrv_file_open(&s->hd, filename, flags);
++ ret = bdrv_file_open(&s->hd, filename, flags | BDRV_O_AUTOGROW);
+ if (ret < 0)
+ return ret;
+ if (bdrv_pread(s->hd, 0, &magic, sizeof(magic)) != sizeof(magic))
+diff -uprN kvm_84+dfsg/qemu/qemu-img.c kvm_84+dfsg.new/qemu/qemu-img.c
+--- kvm_84+dfsg/qemu/qemu-img.c 2009-02-12 09:19:26.000000000 -0600
++++ kvm_84+dfsg.new/qemu/qemu-img.c 2009-02-16 16:09:52.403820950 -0600
+@@ -26,6 +26,8 @@
+ #include "block_int.h"
+ #include
+
++int vm_running = 0;
++
+ #ifdef _WIN32
+ #define WIN32_LEAN_AND_MEAN
+ #include
+diff -uprN kvm_84+dfsg/qemu/qemu-nbd.c kvm_84+dfsg.new/qemu/qemu-nbd.c
+--- kvm_84+dfsg/qemu/qemu-nbd.c 2009-02-12 09:19:26.000000000 -0600
++++ kvm_84+dfsg.new/qemu/qemu-nbd.c 2009-02-16 16:09:52.403820950 -0600
+@@ -21,6 +21,8 @@
+ #include "block_int.h"
+ #include "nbd.h"
+
++int vm_running = 0;
++
+ #include
+ #include
+ #include
--- kvm-84+dfsg.orig/debian/patches/0002-Convert-vectored-aio-emulation-to-use-a-dedicated-po.patch
+++ kvm-84+dfsg/debian/patches/0002-Convert-vectored-aio-emulation-to-use-a-dedicated-po.patch
@@ -0,0 +1,75 @@
+From 1f310e069d8e6c998272839aad0c6127c438c84b Mon Sep 17 00:00:00 2001
+From: aliguori
+Date: Fri, 20 Mar 2009 18:26:03 +0000
+Subject: [PATCH] Convert vectored aio emulation to use a dedicated pool (Avi Kivity)
+
+This allows us to remove a hack in the vectored aio cancellation code.
+
+Signed-off-by: Avi Kivity
+Signed-off-by: Anthony Liguori
+---
+ qemu/block.c | 20 ++++++++++++++------
+ 1 files changed, 14 insertions(+), 6 deletions(-)
+
+diff --git a/qemu/block.c b/qemu/block.c
+index ad16ee4..fe83585 100644
+--- a/qemu/block.c
++++ b/qemu/block.c
+@@ -47,6 +47,8 @@
+ #define SECTOR_BITS 9
+ #define SECTOR_SIZE (1 << SECTOR_BITS)
+
++static AIOPool vectored_aio_pool;
++
+ typedef struct BlockDriverAIOCBSync {
+ BlockDriverAIOCB common;
+ QEMUBH *bh;
+@@ -1261,6 +1263,13 @@ typedef struct VectorTranslationState {
+ BlockDriverAIOCB *this_aiocb;
+ } VectorTranslationState;
+
++static void bdrv_aio_cancel_vector(BlockDriverAIOCB *acb)
++{
++ VectorTranslationState *s = acb->opaque;
++
++ bdrv_aio_cancel(s->aiocb);
++}
++
+ static void bdrv_aio_rw_vector_cb(void *opaque, int ret)
+ {
+ VectorTranslationState *s = opaque;
+@@ -1283,7 +1292,8 @@ static BlockDriverAIOCB *bdrv_aio_rw_vector(BlockDriverState *bs,
+
+ {
+ VectorTranslationState *s = qemu_mallocz(sizeof(*s));
+- BlockDriverAIOCB *aiocb = qemu_aio_get(bs, cb, opaque);
++ BlockDriverAIOCB *aiocb = qemu_aio_get_pool(&vectored_aio_pool, bs,
++ cb, opaque);
+
+ s->this_aiocb = aiocb;
+ s->iov = iov;
+@@ -1372,11 +1382,6 @@ BlockDriverAIOCB *bdrv_aio_write(BlockDriverState *bs, int64_t sector_num,
+
+ void bdrv_aio_cancel(BlockDriverAIOCB *acb)
+ {
+- if (acb->cb == bdrv_aio_rw_vector_cb) {
+- VectorTranslationState *s = acb->opaque;
+- acb = s->aiocb;
+- }
+-
+ acb->pool->cancel(acb);
+ }
+
+@@ -1478,6 +1483,9 @@ static int bdrv_write_em(BlockDriverState *bs, int64_t sector_num,
+
+ void bdrv_init(void)
+ {
++ aio_pool_init(&vectored_aio_pool, sizeof(BlockDriverAIOCB),
++ bdrv_aio_cancel_vector);
++
+ bdrv_register(&bdrv_raw);
+ bdrv_register(&bdrv_host_device);
+ #ifndef _WIN32
+--
+1.6.0.4
+
--- kvm-84+dfsg.orig/debian/patches/fix_screen_corruption.patch
+++ kvm-84+dfsg/debian/patches/fix_screen_corruption.patch
@@ -0,0 +1,69 @@
+From upstream SVN:
+ * http://svn.savannah.gnu.org/viewvc/trunk/exec.c?r1=6601&r2=6628&pathrev=6628&root=qemu&view=patch
+
+--- a/qemu/exec.c 2009/02/11 15:20:58 6601
++++ b/qemu/exec.c 2009/02/18 21:37:17 6628
+@@ -2955,25 +2955,26 @@
+
+ if (is_write) {
+ if ((pd & ~TARGET_PAGE_MASK) != IO_MEM_RAM) {
++ target_phys_addr_t addr1 = addr;
+ io_index = (pd >> IO_MEM_SHIFT) & (IO_MEM_NB_ENTRIES - 1);
+ if (p)
+- addr = (addr & ~TARGET_PAGE_MASK) + p->region_offset;
++ addr1 = (addr & ~TARGET_PAGE_MASK) + p->region_offset;
+ /* XXX: could force cpu_single_env to NULL to avoid
+ potential bugs */
+- if (l >= 4 && ((addr & 3) == 0)) {
++ if (l >= 4 && ((addr1 & 3) == 0)) {
+ /* 32 bit write access */
+ val = ldl_p(buf);
+- io_mem_write[io_index][2](io_mem_opaque[io_index], addr, val);
++ io_mem_write[io_index][2](io_mem_opaque[io_index], addr1, val);
+ l = 4;
+- } else if (l >= 2 && ((addr & 1) == 0)) {
++ } else if (l >= 2 && ((addr1 & 1) == 0)) {
+ /* 16 bit write access */
+ val = lduw_p(buf);
+- io_mem_write[io_index][1](io_mem_opaque[io_index], addr, val);
++ io_mem_write[io_index][1](io_mem_opaque[io_index], addr1, val);
+ l = 2;
+ } else {
+ /* 8 bit write access */
+ val = ldub_p(buf);
+- io_mem_write[io_index][0](io_mem_opaque[io_index], addr, val);
++ io_mem_write[io_index][0](io_mem_opaque[io_index], addr1, val);
+ l = 1;
+ }
+ } else {
+@@ -2993,23 +2994,24 @@
+ } else {
+ if ((pd & ~TARGET_PAGE_MASK) > IO_MEM_ROM &&
+ !(pd & IO_MEM_ROMD)) {
++ target_phys_addr_t addr1 = addr;
+ /* I/O case */
+ io_index = (pd >> IO_MEM_SHIFT) & (IO_MEM_NB_ENTRIES - 1);
+ if (p)
+- addr = (addr & ~TARGET_PAGE_MASK) + p->region_offset;
+- if (l >= 4 && ((addr & 3) == 0)) {
++ addr1 = (addr & ~TARGET_PAGE_MASK) + p->region_offset;
++ if (l >= 4 && ((addr1 & 3) == 0)) {
+ /* 32 bit read access */
+- val = io_mem_read[io_index][2](io_mem_opaque[io_index], addr);
++ val = io_mem_read[io_index][2](io_mem_opaque[io_index], addr1);
+ stl_p(buf, val);
+ l = 4;
+- } else if (l >= 2 && ((addr & 1) == 0)) {
++ } else if (l >= 2 && ((addr1 & 1) == 0)) {
+ /* 16 bit read access */
+- val = io_mem_read[io_index][1](io_mem_opaque[io_index], addr);
++ val = io_mem_read[io_index][1](io_mem_opaque[io_index], addr1);
+ stw_p(buf, val);
+ l = 2;
+ } else {
+ /* 8 bit read access */
+- val = io_mem_read[io_index][0](io_mem_opaque[io_index], addr);
++ val = io_mem_read[io_index][0](io_mem_opaque[io_index], addr1);
+ stb_p(buf, val);
+ l = 1;
+ }
--- kvm-84+dfsg.orig/debian/patches/add-all-virtio-drives.patch
+++ kvm-84+dfsg/debian/patches/add-all-virtio-drives.patch
@@ -0,0 +1,29 @@
+Patch from Soren Hansen , modifications by
+Dustin Kirkland .
+
+Fixes bugs where the caller does not specify a perfectly
+defined list of virtio drives starting at index=0 and having
+no gaps in indices.
+
+https://bugs.edge.launchpad.net/ubuntu/+source/grub/+bug/360832
+https://bugs.edge.launchpad.net/ubuntu/+source/kvm/+bug/360825
+
+Signed-off-by: Dustin Kirkland
+
+--- kvm-84+dfsg/qemu/hw/pc.c 2009-02-12 09:19:26.000000000 -0600
++++ kvm-84+dfsg/qemu/hw/pc.c.new 2009-04-14 16:35:06.000000000 -0500
+@@ -1155,10 +1155,10 @@ vga_bios_error:
+ int index;
+ int unit_id = 0;
+
+- while ((index = drive_get_index(IF_VIRTIO, 0, unit_id)) != -1) {
+- virtio_blk_init(pci_bus, drives_table[index].bdrv);
+- unit_id++;
+- }
++ for (unit_id = 0; unit_id < MAX_DRIVES; unit_id++)
++ if ((index = drive_get_index(IF_VIRTIO, 0, unit_id)) != -1)
++ virtio_blk_init(pci_bus, drives_table[index].bdrv);
++
+ }
+
+ if (extboot_drive != -1) {
--- kvm-84+dfsg.orig/debian/patches/0003-Implement-cancellation-method-for-dma-async-I-O-Avi.patch
+++ kvm-84+dfsg/debian/patches/0003-Implement-cancellation-method-for-dma-async-I-O-Avi.patch
@@ -0,0 +1,80 @@
+From 2f615dfb773043e4545319d470e407ea6d4f1ecb Mon Sep 17 00:00:00 2001
+From: aliguori
+Date: Fri, 20 Mar 2009 18:26:07 +0000
+Subject: [PATCH] Implement cancellation method for dma async I/O (Avi Kivity)
+
+Move the dma helpers to a private aio pool, and implement a cancellation
+method for them. Should prevent issues when cancelling I/O while dma is
+in progress.
+
+Signed-off-by: Avi Kivity
+Signed-off-by: Anthony Liguori
+---
+ qemu/dma-helpers.c | 15 ++++++++++++++-
+ qemu/dma.h | 1 +
+ qemu/vl.c | 1 +
+ 3 files changed, 16 insertions(+), 1 deletions(-)
+
+diff --git a/qemu/dma-helpers.c b/qemu/dma-helpers.c
+index b2ade19..19fa4f0 100644
+--- a/qemu/dma-helpers.c
++++ b/qemu/dma-helpers.c
+@@ -10,6 +10,8 @@
+ #include "dma.h"
+ #include "block_int.h"
+
++static AIOPool dma_aio_pool;
++
+ void qemu_sglist_init(QEMUSGList *qsg, int alloc_hint)
+ {
+ qsg->sg = qemu_malloc(alloc_hint * sizeof(ScatterGatherEntry));
+@@ -126,7 +128,7 @@ static BlockDriverAIOCB *dma_bdrv_io(
+ DMABlockState *dbs = qemu_malloc(sizeof(*dbs));
+
+ dbs->bs = bs;
+- dbs->acb = qemu_aio_get(bs, cb, opaque);
++ dbs->acb = qemu_aio_get_pool(&dma_aio_pool, bs, cb, opaque);
+ dbs->sg = sg;
+ dbs->sector_num = sector_num;
+ dbs->sg_cur_index = 0;
+@@ -153,3 +155,14 @@ BlockDriverAIOCB *dma_bdrv_write(BlockDriverState *bs,
+ return dma_bdrv_io(bs, sg, sector, cb, opaque, 1);
+ }
+
++static void dma_aio_cancel(BlockDriverAIOCB *acb)
++{
++ DMABlockState *dbs = (DMABlockState *)acb->opaque;
++
++ bdrv_aio_cancel(dbs->acb);
++}
++
++void dma_helper_init(void)
++{
++ aio_pool_init(&dma_aio_pool, sizeof(BlockDriverAIOCB), dma_aio_cancel);
++}
+diff --git a/qemu/dma.h b/qemu/dma.h
+index d596717..7d2ab45 100644
+--- a/qemu/dma.h
++++ b/qemu/dma.h
+@@ -37,5 +37,6 @@ BlockDriverAIOCB *dma_bdrv_read(BlockDriverState *bs,
+ BlockDriverAIOCB *dma_bdrv_write(BlockDriverState *bs,
+ QEMUSGList *sg, uint64_t sector,
+ BlockDriverCompletionFunc *cb, void *opaque);
++void dma_helper_init(void);
+
+ #endif
+diff --git a/qemu/vl.c b/qemu/vl.c
+index b62a2d4..abc7f5d 100644
+--- a/qemu/vl.c
++++ b/qemu/vl.c
+@@ -5515,6 +5515,7 @@ int main(int argc, char **argv, char **envp)
+ cpu_exec_init_all(tb_size * 1024 * 1024);
+
+ bdrv_init();
++ dma_helper_init();
+
+ /* we always create the cdrom drive, even if no disk is there */
+
+--
+1.6.0.4
+
--- kvm-84+dfsg.orig/debian/patches/fix-qcow-corruption.patch
+++ kvm-84+dfsg/debian/patches/fix-qcow-corruption.patch
@@ -0,0 +1,42 @@
+From: aliguori
+Date: Sun, 5 Apr 2009 18:15:59 +0000 (+0000)
+Subject: Fix (at least one cause of) qcow2 corruption. (Nolan Leake)
+X-Git-Url: http://git.kernel.org/?p=virt%2Fkvm%2Fkvm-userspace.git;a=commitdiff_plain;h=385aae33c08e17ec63671b9fa1c503c21283bc1f;hp=b335c2b5762259c827bae487dca26441497a96cb
+
+Fix (at least one cause of) qcow2 corruption. (Nolan Leake)
+
+qcow2's get_cluster_offset() scans forward in the l2 table to find other
+clusters that have the same allocation status as the first cluster.
+This is used by (among others) qcow_is_allocated().
+
+Unfortunately, it was not checking to be sure that it didn't fall off
+the end of the l2 table. This patch adds that check.
+
+The symptom that motivated me to look into this was that
+bdrv_is_allocated() was returning false when there was in fact data
+there. This is one of many ways this bug could lead to data corruption.
+
+I checked the other place that scans for consecutive unallocated blocks
+(alloc_cluster_offset()) and it appears to be OK:
+ nb_clusters = MIN(nb_clusters, s->l2_size - l2_index);
+appears to prevent the same problem from occurring.
+
+Signed-off-by: Nolan Leake sigbus.net>
+Signed-off-by: Anthony Liguori
+---
+
+diff --git a/qemu/block-qcow2.c b/qemu/block-qcow2.c
+index 957e419..894b05a 100644
+--- a/qemu/block-qcow2.c
++++ b/qemu/block-qcow2.c
+@@ -670,6 +670,10 @@ static uint64_t get_cluster_offset(BlockDriverState *bs,
+
+ nb_available = (nb_available >> 9) + index_in_cluster;
+
++ if (nb_needed > nb_available) {
++ nb_needed = nb_available;
++ }
++
+ cluster_offset = 0;
+
+ /* seek the the l2 offset in the l1 table */
--- kvm-84+dfsg.orig/debian/patches/dkmsify.patch
+++ kvm-84+dfsg/debian/patches/dkmsify.patch
@@ -0,0 +1,19 @@
+--- kvm-84+dfsg.orig/kernel/Makefile
++++ kvm-84+dfsg/kernel/Makefile
+@@ -1,7 +1,8 @@
+ include ../config.mak
+ include config.kbuild
+
+-ARCH_DIR = $(if $(filter $(ARCH),x86_64 i386),x86,$(ARCH))
++ARCH=$(shell uname -m)
++ARCH_DIR = $(if $(filter $(ARCH),x86_64 i386 i686),x86,$(ARCH))
+ ARCH_CONFIG := $(shell echo $(ARCH_DIR) | tr '[:lower:]' '[:upper:]')
+ # NONARCH_CONFIG used for unifdef, and only cover X86 and IA64 now
+ NONARCH_CONFIG = $(filter-out $(ARCH_CONFIG),X86 IA64)
+--- kvm-79+dfsg.orig/kernel/Makefile 2008-11-12 12:48:01.000000000 +0100
++++ kvm-79+dfsg/kernel/Makefile 2008-11-18 10:30:38.436636160 +0100
+@@ -1,4 +1,3 @@
+-include ../config.mak
+ include config.kbuild
+
+ ARCH_DIR = $(if $(filter $(ARCH),x86_64 i386),x86,$(ARCH))
--- kvm-84+dfsg.orig/debian/patches/0001-Refactor-aio-callback-allocation-to-use-an-aiocb-poo.patch
+++ kvm-84+dfsg/debian/patches/0001-Refactor-aio-callback-allocation-to-use-an-aiocb-poo.patch
@@ -0,0 +1,155 @@
+From 5f7a4ea7ad2355d17ded90c393627d38d440ab26 Mon Sep 17 00:00:00 2001
+From: aliguori
+Date: Fri, 20 Mar 2009 18:25:59 +0000
+Subject: [PATCH] Refactor aio callback allocation to use an aiocb pool (Avi Kivity)
+
+Move the AIOCB allocation code to use a dedicate structure, AIOPool. AIOCB
+specific information, such as the AIOCB size and cancellation routine, is
+moved into the pool.
+
+At present, there is exactly one pool per block format driver, maintaining
+the status quo.
+
+Signed-off-by: Avi Kivity
+Signed-off-by: Anthony Liguori
+---
+ qemu/block.c | 42 +++++++++++++++++++++++++++---------------
+ qemu/block_int.h | 14 +++++++++++++-
+ 2 files changed, 40 insertions(+), 16 deletions(-)
+
+diff --git a/qemu/block.c b/qemu/block.c
+index 135fbe6..ad16ee4 100644
+--- a/qemu/block.c
++++ b/qemu/block.c
+@@ -147,6 +147,7 @@ static void bdrv_register(BlockDriver *bdrv)
+ bdrv->bdrv_read = bdrv_read_em;
+ bdrv->bdrv_write = bdrv_write_em;
+ }
++ aio_pool_init(&bdrv->aio_pool, bdrv->aiocb_size, bdrv->bdrv_aio_cancel);
+ bdrv->next = first_drv;
+ first_drv = bdrv;
+ }
+@@ -1371,14 +1372,12 @@ BlockDriverAIOCB *bdrv_aio_write(BlockDriverState *bs, int64_t sector_num,
+
+ void bdrv_aio_cancel(BlockDriverAIOCB *acb)
+ {
+- BlockDriver *drv = acb->bs->drv;
+-
+ if (acb->cb == bdrv_aio_rw_vector_cb) {
+ VectorTranslationState *s = acb->opaque;
+ acb = s->aiocb;
+ }
+
+- drv->bdrv_aio_cancel(acb);
++ acb->pool->cancel(acb);
+ }
+
+
+@@ -1496,18 +1495,25 @@ void bdrv_init(void)
+ bdrv_register(&bdrv_nbd);
+ }
+
+-void *qemu_aio_get(BlockDriverState *bs, BlockDriverCompletionFunc *cb,
+- void *opaque)
++void aio_pool_init(AIOPool *pool, int aiocb_size,
++ void (*cancel)(BlockDriverAIOCB *acb))
++{
++ pool->aiocb_size = aiocb_size;
++ pool->cancel = cancel;
++ pool->free_aiocb = NULL;
++}
++
++void *qemu_aio_get_pool(AIOPool *pool, BlockDriverState *bs,
++ BlockDriverCompletionFunc *cb, void *opaque)
+ {
+- BlockDriver *drv;
+ BlockDriverAIOCB *acb;
+
+- drv = bs->drv;
+- if (drv->free_aiocb) {
+- acb = drv->free_aiocb;
+- drv->free_aiocb = acb->next;
++ if (pool->free_aiocb) {
++ acb = pool->free_aiocb;
++ pool->free_aiocb = acb->next;
+ } else {
+- acb = qemu_mallocz(drv->aiocb_size);
++ acb = qemu_mallocz(pool->aiocb_size);
++ acb->pool = pool;
+ }
+ acb->bs = bs;
+ acb->cb = cb;
+@@ -1515,12 +1521,18 @@ void *qemu_aio_get(BlockDriverState *bs, BlockDriverCompletionFunc *cb,
+ return acb;
+ }
+
++void *qemu_aio_get(BlockDriverState *bs, BlockDriverCompletionFunc *cb,
++ void *opaque)
++{
++ return qemu_aio_get_pool(&bs->drv->aio_pool, bs, cb, opaque);
++}
++
+ void qemu_aio_release(void *p)
+ {
+- BlockDriverAIOCB *acb = p;
+- BlockDriver *drv = acb->bs->drv;
+- acb->next = drv->free_aiocb;
+- drv->free_aiocb = acb;
++ BlockDriverAIOCB *acb = (BlockDriverAIOCB *)p;
++ AIOPool *pool = acb->pool;
++ acb->next = pool->free_aiocb;
++ pool->free_aiocb = acb;
+ }
+
+ /**************************************************************/
+diff --git a/qemu/block_int.h b/qemu/block_int.h
+index d3c81fa..8b4c5fe 100644
+--- a/qemu/block_int.h
++++ b/qemu/block_int.h
+@@ -30,6 +30,12 @@
+ #define BLOCK_FLAG_COMPRESS 2
+ #define BLOCK_FLAG_COMPAT6 4
+
++typedef struct AIOPool {
++ void (*cancel)(BlockDriverAIOCB *acb);
++ int aiocb_size;
++ BlockDriverAIOCB *free_aiocb;
++} AIOPool;
++
+ struct BlockDriver {
+ const char *format_name;
+ int instance_size;
+@@ -91,7 +97,7 @@ struct BlockDriver {
+ BlockDriverCompletionFunc *cb,
+ void *opaque);
+
+- BlockDriverAIOCB *free_aiocb;
++ AIOPool aio_pool;
+ struct BlockDriver *next;
+ };
+
+@@ -141,6 +147,7 @@ struct BlockDriverState {
+ };
+
+ struct BlockDriverAIOCB {
++ AIOPool *pool;
+ BlockDriverState *bs;
+ BlockDriverCompletionFunc *cb;
+ void *opaque;
+@@ -149,8 +156,13 @@ struct BlockDriverAIOCB {
+
+ void get_tmp_filename(char *filename, int size);
+
++void aio_pool_init(AIOPool *pool, int aiocb_size,
++ void (*cancel)(BlockDriverAIOCB *acb));
++
+ void *qemu_aio_get(BlockDriverState *bs, BlockDriverCompletionFunc *cb,
+ void *opaque);
++void *qemu_aio_get_pool(AIOPool *pool, BlockDriverState *bs,
++ BlockDriverCompletionFunc *cb, void *opaque);
+ void qemu_aio_release(void *p);
+
+ extern BlockDriverState *bdrv_first;
+--
+1.6.0.4
+
--- kvm-84+dfsg.orig/debian/patches/0004-Use-vectored-aiocb-storage-to-store-vector-translati.patch
+++ kvm-84+dfsg/debian/patches/0004-Use-vectored-aiocb-storage-to-store-vector-translati.patch
@@ -0,0 +1,93 @@
+From c48260ed4c7824dfda5b604e44af9bce182c43a7 Mon Sep 17 00:00:00 2001
+From: aliguori
+Date: Fri, 20 Mar 2009 18:26:12 +0000
+Subject: [PATCH] Use vectored aiocb storage to store vector translation state (Avi Kivity)
+
+Now that we have a dedicated acb pool for vector translation acbs, we can
+store the vector translation state in the acbs instead of in an external
+structure.
+
+Signed-off-by: Avi Kivity
+Signed-off-by: Anthony Liguori
+---
+ qemu/block.c | 29 ++++++++++++++---------------
+ 1 files changed, 14 insertions(+), 15 deletions(-)
+
+Index: kvm-84+dfsg/qemu/block.c
+===================================================================
+--- kvm-84+dfsg.orig/qemu/block.c 2009-05-03 09:35:33.609380722 +0200
++++ kvm-84+dfsg/qemu/block.c 2009-05-03 09:39:27.284371389 +0200
+@@ -1346,31 +1346,32 @@
+ /**************************************************************/
+ /* async I/Os */
+
+-typedef struct VectorTranslationState {
++typedef struct VectorTranslationAIOCB {
++ BlockDriverAIOCB common;
+ QEMUIOVector *iov;
+ uint8_t *bounce;
+ int is_write;
+ BlockDriverAIOCB *aiocb;
+- BlockDriverAIOCB *this_aiocb;
+-} VectorTranslationState;
++} VectorTranslationAIOCB;
+
+-static void bdrv_aio_cancel_vector(BlockDriverAIOCB *acb)
++static void bdrv_aio_cancel_vector(BlockDriverAIOCB *_acb)
+ {
+- VectorTranslationState *s = acb->opaque;
++ VectorTranslationAIOCB *acb
++ = container_of(_acb, VectorTranslationAIOCB, common);
+
+- bdrv_aio_cancel(s->aiocb);
++ bdrv_aio_cancel(acb->aiocb);
+ }
+
+ static void bdrv_aio_rw_vector_cb(void *opaque, int ret)
+ {
+- VectorTranslationState *s = opaque;
++ VectorTranslationAIOCB *s = (VectorTranslationAIOCB *)opaque;
+
+ if (!s->is_write) {
+ qemu_iovec_from_buffer(s->iov, s->bounce, s->iov->size);
+ }
+ qemu_free(s->bounce);
+- s->this_aiocb->cb(s->this_aiocb->opaque, ret);
+- qemu_aio_release(s->this_aiocb);
++ s->common.cb(s->common.opaque, ret);
++ qemu_aio_release(s);
+ }
+
+ static BlockDriverAIOCB *bdrv_aio_rw_vector(BlockDriverState *bs,
+@@ -1382,11 +1383,9 @@
+ int is_write)
+
+ {
+- VectorTranslationState *s = qemu_mallocz(sizeof(*s));
+- BlockDriverAIOCB *aiocb = qemu_aio_get_pool(&vectored_aio_pool, bs,
+- cb, opaque);
++ VectorTranslationAIOCB *s = qemu_aio_get_pool(&vectored_aio_pool, bs,
++ cb, opaque);
+
+- s->this_aiocb = aiocb;
+ s->iov = iov;
+ s->bounce = qemu_memalign(512, nb_sectors * 512);
+ s->is_write = is_write;
+@@ -1398,7 +1397,7 @@
+ s->aiocb = bdrv_aio_read(bs, sector_num, s->bounce, nb_sectors,
+ bdrv_aio_rw_vector_cb, s);
+ }
+- return aiocb;
++ return &s->common;
+ }
+
+ BlockDriverAIOCB *bdrv_aio_readv(BlockDriverState *bs, int64_t sector_num,
+@@ -1569,7 +1568,7 @@
+
+ void bdrv_init(void)
+ {
+- aio_pool_init(&vectored_aio_pool, sizeof(BlockDriverAIOCB),
++ aio_pool_init(&vectored_aio_pool, sizeof(VectorTranslationAIOCB),
+ bdrv_aio_cancel_vector);
+
+ bdrv_register(&bdrv_raw);
--- kvm-84+dfsg.orig/debian/patches/net-socket.patch
+++ kvm-84+dfsg/debian/patches/net-socket.patch
@@ -0,0 +1,41 @@
+diff -urpN kvm_84+dfsg.new/qemu/net.c kvm_84+dfsg.new.new/qemu/net.c
+--- kvm_84+dfsg.new/qemu/net.c 2009-02-12 09:19:26.000000000 -0600
++++ kvm_84+dfsg.new.new/qemu/net.c 2009-02-16 16:50:57.195796925 -0600
+@@ -1246,8 +1246,8 @@ typedef struct NetSocketState {
+ VLANClientState *vc;
+ int fd;
+ int state; /* 0 = getting length, 1 = getting data */
+- int index;
+- int packet_len;
++ unsigned int index;
++ unsigned int packet_len;
+ uint8_t buf[4096];
+ struct sockaddr_in dgram_dst; /* contains inet host and port destination iff connectionless (SOCK_DGRAM) */
+ } NetSocketState;
+@@ -1280,7 +1280,8 @@ static void net_socket_receive_dgram(voi
+ static void net_socket_send(void *opaque)
+ {
+ NetSocketState *s = opaque;
+- int l, size, err;
++ int size, err;
++ unsigned l;
+ uint8_t buf1[4096];
+ const uint8_t *buf;
+
+@@ -1319,7 +1320,15 @@ static void net_socket_send(void *opaque
+ l = s->packet_len - s->index;
+ if (l > size)
+ l = size;
+- memcpy(s->buf + s->index, buf, l);
++ if (s->index + l <= sizeof(s->buf)) {
++ memcpy(s->buf + s->index, buf, l);
++ } else {
++ fprintf(stderr, "serious error: oversized packet received,"
++ "connection terminated.\n");
++ s->state = 0;
++ goto eoc;
++ }
++
+ s->index += l;
+ buf += l;
+ size -= l;