--- kvm-79+dfsg.orig/Makefile
+++ kvm-79+dfsg/Makefile
@@ -1,5 +1,5 @@
-include config.mak
+-include config.mak
DESTDIR=
--- kvm-79+dfsg.orig/libfdt/Makefile
+++ kvm-79+dfsg/libfdt/Makefile
@@ -1,5 +1,5 @@
-include ../config.mak
-include ../user/config.mak
+-include ../config.mak
+-include ../user/config.mak
LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c
LIBFDT_INCLUDES = fdt.h libfdt.h
--- kvm-79+dfsg.orig/scripts/qemu-ifup
+++ kvm-79+dfsg/scripts/qemu-ifup
@@ -1,5 +1,6 @@
#!/bin/sh
-switch=$(/sbin/ip route list | awk '/^default / { print $NF }')
+switch=$(ip route ls | awk '/^default / { for(i=0;i.
+
+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-79+dfsg.orig/debian/control
+++ kvm-79+dfsg/debian/control
@@ -0,0 +1,72 @@
+Source: kvm
+Section: misc
+Priority: optional
+XSBC-Original-Maintainer: Jan Lübbe
+Maintainer: Ubuntu Core Developers
+Build-Depends: debhelper (>= 5), pkg-config, quilt (>= 0.40), autotools-dev,
+ bzip2, uuid-dev, zlib1g-dev, libsdl1.2-dev, libasound2-dev, libgnutls-dev,
+ libncurses5-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
+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)
+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
+Suggests: kernel-package, linux-headers | linux-source
+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-79+dfsg.orig/debian/reportbug-hook.sh
+++ kvm-79+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-79+dfsg.orig/debian/changelog.upstream
+++ kvm-79+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-79+dfsg.orig/debian/org.freedesktop.hal.kvm.policy
+++ kvm-79+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-79+dfsg.orig/debian/compat
+++ kvm-79+dfsg/debian/compat
@@ -0,0 +1 @@
+5
--- kvm-79+dfsg.orig/debian/kvm.1
+++ kvm-79+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-79+dfsg.orig/debian/watch
+++ kvm-79+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-79+dfsg.orig/debian/rules
+++ kvm-79+dfsg/debian/rules
@@ -0,0 +1,295 @@
+#!/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 = 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 (amd64,$(shell dpkg-architecture -qDEB_BUILD_ARCH))
+ BUILD_CPU = x86_64
+ 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 \
+ linux_boot.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
+
+
+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
+ 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 qemu distclean
+ $(MAKE) -C bios clean bios-clean
+ $(MAKE) -C qemu/pc-bios clean
+ $(MAKE) clean
+
+ 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
+
+ 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)/bios/*.bin
+ 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-79+dfsg.orig/debian/kvm.udev
+++ kvm-79+dfsg/debian/kvm.udev
@@ -0,0 +1 @@
+KERNEL=="kvm", NAME="%k", GROUP="kvm", MODE="0660"
--- kvm-79+dfsg.orig/debian/README.source
+++ kvm-79+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-79+dfsg.orig/debian/kvm-source.links
+++ kvm-79+dfsg/debian/kvm-source.links
@@ -0,0 +1 @@
+usr/share/modass/packages/default.sh usr/share/modass/overrides/kvm-source
--- kvm-79+dfsg.orig/debian/TODO
+++ kvm-79+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-79+dfsg.orig/debian/kvm.init
+++ kvm-79+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)
+ if [ -z "$module" ]
+ then
+ log_failure_msg "Your system does not have the CPU extensions required to use KVM. Not doing anything."
+ exit 0
+ fi
+ if modprobe "$module"
+ then
+ log_success_msg "Loading kvm module $module"
+ else
+ log_failure_msg "Module $module failed to load"
+ exit 1
+ fi
+ ;;
+ stop)
+ if [ -z "$module" ]
+ then
+ exit 0
+ fi
+ if lsmod | grep -q "$module"
+ then
+ if rmmod "$module"
+ then
+ log_success_msg "Succesfully unloaded kvm module $module"
+ rmmod kvm
+ else
+ log_failure_msg "Failed to remove $module"
+ exit 1
+ fi
+ else
+ log_failure_msg "Module $module not loaded"
+ fi
+ ;;
+ force-reload|restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|force-reload}" >&2
+ exit 3
+ ;;
+esac
+
+:
--- kvm-79+dfsg.orig/debian/README.Debian
+++ kvm-79+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-79+dfsg.orig/debian/kvm-source.postinst
+++ kvm-79+dfsg/debian/kvm-source.postinst
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+# KVM versioning is "fun"
+CURVER=`dpkg-query -W -f='${Version}' kvm-source | cut -d: -f2 | cut -f1 -d+`
+
+case "$1" in
+ configure)
+ dkms add -m kvm -v $CURVER
+ dkms build -m kvm -v $CURVER
+ dkms install -m kvm -v $CURVER --force
+ ;;
+esac
+
+#DEBHELPER#
--- kvm-79+dfsg.orig/debian/10-kvm.fdi
+++ kvm-79+dfsg/debian/10-kvm.fdi
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+ access_control
+ /dev/kvm
+ virt-hardware
+
+
+
--- kvm-79+dfsg.orig/debian/kvm-source.install
+++ kvm-79+dfsg/debian/kvm-source.install
@@ -0,0 +1,2 @@
+usr/share/bug/kvm-source
+usr/src/*
--- kvm-79+dfsg.orig/debian/kvm.install
+++ kvm-79+dfsg/debian/kvm.install
@@ -0,0 +1,11 @@
+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/*
+../10-kvm.fdi usr/share/hal/fdi/policy/10osvendor/
+../org.freedesktop.hal.kvm.policy usr/share/PolicyKit/policy/
--- kvm-79+dfsg.orig/debian/copyright
+++ kvm-79+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-79+dfsg.orig/debian/kvm-source.prerm
+++ kvm-79+dfsg/debian/kvm-source.prerm
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+# KVM versioning is "fun"
+CURVER=`dpkg-query -W -f='${Version}' kvm-source | cut -d: -f2 | cut -f1 -d+`
+
+case "$1" in
+ remove|upgrade)
+ dkms remove -m kvm -v $CURVER --all > /dev/null
+ ;;
+esac
+
+#DEBHELPER#
--- kvm-79+dfsg.orig/debian/dkms.conf
+++ kvm-79+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]="./"
+BUILT_MODULE_NAME[1]="kvm-intel"
+BUILT_MODULE_LOCATION[1]="./"
+BUILT_MODULE_NAME[2]="kvm-amd"
+BUILT_MODULE_LOCATION[2]="./"
+DEST_MODULE_LOCATION[0]="/kernel/updates"
+DEST_MODULE_LOCATION[1]="/kernel/updates"
+DEST_MODULE_LOCATION[2]="/kernel/updates"
--- kvm-79+dfsg.orig/debian/postinst
+++ kvm-79+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-79+dfsg.orig/debian/preinst
+++ kvm-79+dfsg/debian/preinst
@@ -0,0 +1,27 @@
+#!/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
+esac
+
+#DEBHELPER#
+
+exit 0
--- kvm-79+dfsg.orig/debian/changelog
+++ kvm-79+dfsg/debian/changelog
@@ -0,0 +1,903 @@
+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-79+dfsg.orig/debian/patches/series
+++ kvm-79+dfsg/debian/patches/series
@@ -0,0 +1,14 @@
+01_use_bios_files_in_usr_share_kvm.patch -p0
+02_fix_kernel_Makefile.patch
+03_bios_no_ssp.patch
+04_use_etc_kvm_kvm-ifup.patch -p0
+06_no_system_linux_kvm_h.patch -p0
+from-debian-qemu/22_net_tuntap_stall.patch -p0
+from-debian-qemu/62_linux_boot_nasm.patch -p0
+07_change_qemu_docdir.patch
+CVE-2008-0928.patch
+SECURITY_CVE-2007-1321+1322+1366+2893.patch
+do-not-install-bios.patch
+reenable_audio_drivers.patch
+anon_inodes_fix.patch
+evdev_keycode_map.patch
--- kvm-79+dfsg.orig/debian/patches/evdev_keycode_map.patch
+++ kvm-79+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-79+dfsg.orig/debian/patches/01_use_bios_files_in_usr_share_kvm.patch
+++ kvm-79+dfsg/debian/patches/01_use_bios_files_in_usr_share_kvm.patch
@@ -0,0 +1,13 @@
+Index: qemu/configure
+===================================================================
+--- qemu/configure.orig
++++ 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
--- kvm-79+dfsg.orig/debian/patches/reenable_audio_drivers.patch
+++ kvm-79+dfsg/debian/patches/reenable_audio_drivers.patch
@@ -0,0 +1,19 @@
+commit 491b72869dcfbaa5e1310c24af39fbb7ee017ffc
+Author: Jan Luebbe
+Date: Fri Aug 8 05:50:00 2008 +0200
+
+ reenable audio drivers
+
+Index: kvm/configure
+===================================================================
+--- kvm.orig/configure
++++ kvm/configure
+@@ -109,6 +109,8 @@
+ (cd qemu; ./configure --target-list=$target_exec \
+ --disable-kqemu \
+ --disable-gcc-check \
++ --audio-drv-list="oss alsa sdl" \
++ --audio-card-list="ac97 adlib cs4231a gus" \
+ --extra-cflags="-I $PWD/../libkvm $qemu_cflags" \
+ --extra-ldflags="-L $PWD/../libkvm $qemu_ldflags" \
+ --kernel-path="$libkvm_kerneldir" \
--- kvm-79+dfsg.orig/debian/patches/04_use_etc_kvm_kvm-ifup.patch
+++ kvm-79+dfsg/debian/patches/04_use_etc_kvm_kvm-ifup.patch
@@ -0,0 +1,18 @@
+
+Use an independent script to control the network at startup.
+
+Index: qemu/vl.c
+===================================================================
+--- qemu/vl.c.orig
++++ qemu/vl.c
+@@ -136,8 +136,8 @@
+ #include "qemu-kvm.h"
+ #endif
+
+-#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup"
+-#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown"
++#define DEFAULT_NETWORK_SCRIPT "/etc/kvm/kvm-ifup"
++#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/kvm/kvm-ifdown"
+ #ifdef __sun__
+ #define SMBD_COMMAND "/usr/sfw/sbin/smbd"
+ #else
--- kvm-79+dfsg.orig/debian/patches/anon_inodes_fix.patch
+++ kvm-79+dfsg/debian/patches/anon_inodes_fix.patch
@@ -0,0 +1,28 @@
+commit 5c646ce7bfb0eb0a108a09f08a3854a27c11cdaf
+Author: Nikola Ciprich
+Date: Wed Jul 30 18:10:47 2008 +0200
+
+ kvm: external module: anon_inodes compat for 2.6.26
+
+ Signed-off-by: Avi Kivity
+
+diff --git a/kernel/anon_inodes.c b/kernel/anon_inodes.c
+index 6cf91ab..510303f 100644
+--- a/kernel/anon_inodes.c
++++ b/kernel/anon_inodes.c
+@@ -245,6 +245,15 @@ int kvm_anon_inode_getfd(const char *name,
+ return fd;
+ }
+
++#elif LINUX_VERSION_CODE == KERNEL_VERSION(2,6,26)
++
++int kvm_anon_inode_getfd(const char *name,
++ const struct file_operations *fops,
++ void *priv, int flags)
++{
++ return anon_inode_getfd(name, fops, priv);
++}
++
+ #else
+
+ int kvm_anon_inode_getfd(const char *name,
--- kvm-79+dfsg.orig/debian/patches/07_change_qemu_docdir.patch
+++ kvm-79+dfsg/debian/patches/07_change_qemu_docdir.patch
@@ -0,0 +1,13 @@
+Index: trunk/qemu/configure
+===================================================================
+--- trunk.orig/qemu/configure
++++ trunk/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-79+dfsg.orig/debian/patches/i2c_bus_load_fix.patch
+++ kvm-79+dfsg/debian/patches/i2c_bus_load_fix.patch
@@ -0,0 +1,18 @@
+commit d0c22f49ba84016e4d06012af2176a851825814f
+Author: balrog
+Date: Tue Jul 29 13:57:48 2008 +0000
+
+ Fix load width for slave address in i2c_bus_load (Chris Lalancette).
+
+diff --git a/hw/i2c.c b/hw/i2c.c
+--- a/qemu/hw/i2c.c
++++ b/qemu/hw/i2c.c
+@@ -33,7 +33,7 @@ static int i2c_bus_load(QEMUFile *f, void *opaque, int version_id)
+
+ /* The bus is loaded before attached devices, so load and save the
+ current device id. Devices will check themselves as loaded. */
+- bus->saved_address = qemu_get_be32(f);
++ bus->saved_address = (int8_t) qemu_get_byte(f);
+ bus->current_dev = NULL;
+
+ return 0;
--- kvm-79+dfsg.orig/debian/patches/qemu_vnc_ext_key_event.diff
+++ kvm-79+dfsg/debian/patches/qemu_vnc_ext_key_event.diff
@@ -0,0 +1,115 @@
+This patch adds support for the ExtendedKeyEvent client message. This message
+allows a client to send raw scan codes directly to the server. If the client
+and server are using the same keymap, then it's unnecessary to use the '-k'
+option with QEMU when this extension is supported.
+
+Index: debian-git/qemu/vnc.c
+===================================================================
+--- debian-git.orig/qemu/vnc.c 2008-05-07 17:01:15.366750106 +0200
++++ debian-git/qemu/vnc.c 2008-05-07 17:28:51.950730809 +0200
+@@ -918,12 +918,8 @@
+ kbd_put_keycode(keysym2scancode(vs->kbd_layout, keysym) | 0x80);
+ }
+
+-static void do_key_event(VncState *vs, int down, uint32_t sym)
++static void do_key_event(VncState *vs, int down, int keycode, int sym)
+ {
+- int keycode;
+-
+- keycode = keysym2scancode(vs->kbd_layout, sym & 0xFFFF);
+-
+ /* QEMU console switch */
+ switch(keycode) {
+ case 0x2a: /* Left Shift */
+@@ -1025,9 +1021,24 @@
+
+ static void key_event(VncState *vs, int down, uint32_t sym)
+ {
++ int keycode;
++
+ if (sym >= 'A' && sym <= 'Z' && is_graphic_console())
+ sym = sym - 'A' + 'a';
+- do_key_event(vs, down, sym);
++
++ keycode = keysym2scancode(vs->kbd_layout, sym & 0xFFFF);
++ do_key_event(vs, down, keycode, sym);
++}
++
++static void ext_key_event(VncState *vs, int down,
++ uint32_t sym, uint16_t keycode)
++{
++ /* if the user specifies a keyboard layout, always use it */
++ if (keyboard_layout)
++ key_event(vs, down, sym);
++ else
++ do_key_event(vs, down, keycode, sym);
++
+ }
+
+ static void framebuffer_update_request(VncState *vs, int incremental,
+@@ -1057,6 +1068,15 @@
+ }
+ }
+
++static void send_ext_key_event_ack(VncState *vs)
++{
++ vnc_write_u8(vs, 0);
++ vnc_write_u8(vs, 0);
++ vnc_write_u16(vs, 1);
++ vnc_framebuffer_update(vs, 0, 0, vs->ds->width, vs->ds->height, -258);
++ vnc_flush(vs);
++}
++
+ static void set_encodings(VncState *vs, int32_t *encodings, size_t n_encodings)
+ {
+ int i;
+@@ -1084,6 +1104,9 @@
+ case -257:
+ vs->has_pointer_type_change = 1;
+ break;
++ case -258:
++ send_ext_key_event_ack(vs);
++ break;
+ default:
+ break;
+ }
+@@ -1237,6 +1260,24 @@
+
+ client_cut_text(vs, read_u32(data, 4), data + 8);
+ break;
++ case 255:
++ if (len == 1)
++ return 2;
++
++ switch (read_u8(data, 1)) {
++ case 0:
++ if (len == 2)
++ return 12;
++
++ ext_key_event(vs, read_u16(data, 2),
++ read_u32(data, 4), read_u32(data, 8));
++ break;
++ default:
++ printf("Msg: %d\n", read_u16(data, 0));
++ vnc_client_error(vs);
++ break;
++ }
++ break;
+ default:
+ printf("Msg: %d\n", data[0]);
+ vnc_client_error(vs);
+@@ -1956,10 +1997,11 @@
+
+ vs->ds = ds;
+
+- if (!keyboard_layout)
+- keyboard_layout = "en-us";
++ if (keyboard_layout)
++ vs->kbd_layout = init_keyboard_layout(keyboard_layout);
++ else
++ vs->kbd_layout = init_keyboard_layout("en-us");
+
+- vs->kbd_layout = init_keyboard_layout(keyboard_layout);
+ if (!vs->kbd_layout)
+ exit(1);
+
--- kvm-79+dfsg.orig/debian/patches/03_bios_no_ssp.patch
+++ kvm-79+dfsg/debian/patches/03_bios_no_ssp.patch
@@ -0,0 +1,13 @@
+Index: debian-git/bios/Makefile
+===================================================================
+--- debian-git.orig/bios/Makefile 2008-05-07 13:26:23.930730922 +0200
++++ debian-git/bios/Makefile 2008-05-07 13:26:40.618769544 +0200
+@@ -102,7 +102,7 @@
+ ld -o $@ -T rombios32.ld rombios32start.o vapic.o rombios32.o
+
+ rombios32.o: rombios32.c acpi-dsdt.hex
+- $(GCC) -m32 -O2 -Wall -c -o $@ $<
++ $(GCC) -fno-stack-protector -m32 -O2 -Wall -c -o $@ $<
+
+ acpi-dsdt.hex: acpi-dsdt.dsl
+ iasl -tc -p $@ $<
--- kvm-79+dfsg.orig/debian/patches/06_no_system_linux_kvm_h.patch
+++ kvm-79+dfsg/debian/patches/06_no_system_linux_kvm_h.patch
@@ -0,0 +1,19 @@
+
+Avoid including system header for linux/kvm.h - otherwise we will fail
+when the system has older headers than what we're really trying to
+compile, for example a Linux 2.6.20 host with 2.6.20 Linux headers
+installed would fail.
+
+Index: libkvm/libkvm.h
+===================================================================
+--- libkvm/libkvm.h.orig
++++ libkvm/libkvm.h
+@@ -11,7 +11,7 @@
+ #define __user /* temporary, until installed via make headers_install */
+ #endif
+
+-#include
++#include "linux/kvm.h"
+
+ #include
+
--- kvm-79+dfsg.orig/debian/patches/02_fix_kernel_Makefile.patch
+++ kvm-79+dfsg/debian/patches/02_fix_kernel_Makefile.patch
@@ -0,0 +1,9 @@
+Index: kvm-79+dfsg/kernel/Makefile
+===================================================================
+--- 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-79+dfsg.orig/debian/patches/CVE-2008-0928.patch
+++ kvm-79+dfsg/debian/patches/CVE-2008-0928.patch
@@ -0,0 +1,268 @@
+Index: kvm-79+dfsg/qemu/block.c
+===================================================================
+--- kvm-79+dfsg.orig/qemu/block.c 2008-11-18 11:34:43.612612226 +0100
++++ kvm-79+dfsg/qemu/block.c 2008-11-18 11:39:24.088626846 +0100
+@@ -25,6 +25,7 @@
+ #include "console.h"
+ #include "block_int.h"
+ #include "osdep.h"
++extern int vm_running;
+
+ #ifdef _BSD
+ #include
+@@ -123,6 +124,75 @@
+ }
+ }
+
++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)
+ {
+@@ -335,6 +405,10 @@
+ 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;
+@@ -391,6 +465,7 @@
+ }
+ bs->drv = drv;
+ bs->opaque = qemu_mallocz(drv->instance_size);
++ bs->total_sectors = 0; /* driver will set if it does not do getlength */
+ if (bs->opaque == NULL && drv->instance_size > 0)
+ return -1;
+ /* Note: for compatibility, we open disk image files as RDWR, and
+@@ -456,6 +531,7 @@
+ 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);
+@@ -528,6 +604,8 @@
+ 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;
+@@ -560,6 +638,8 @@
+ 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;
+ len = nb_sectors * 512;
+@@ -682,6 +762,8 @@
+ 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);
+ }
+
+@@ -697,6 +779,8 @@
+ 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);
+ }
+
+@@ -1122,6 +1206,8 @@
+ 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);
+ }
+
+@@ -1268,6 +1354,8 @@
+
+ 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);
+
+@@ -1292,6 +1380,9 @@
+ 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) {
+Index: kvm-79+dfsg/qemu/block.h
+===================================================================
+--- kvm-79+dfsg.orig/qemu/block.h 2008-11-18 11:34:43.632585714 +0100
++++ kvm-79+dfsg/qemu/block.h 2008-11-18 11:40:46.757584631 +0100
+@@ -49,6 +49,7 @@
+ bdrv_file_open()) */
+ #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_AUTOGROW 0x0080 /* Allow backing file to extend when writing past end of file */
+
+ #define BDRV_O_CACHE_MASK (BDRV_O_NOCACHE | BDRV_O_CACHE_WB)
+
+Index: kvm-79+dfsg/qemu/block_int.h
+===================================================================
+--- kvm-79+dfsg.orig/qemu/block_int.h 2008-11-18 11:34:43.652587069 +0100
++++ kvm-79+dfsg/qemu/block_int.h 2008-11-18 11:34:46.840584496 +0100
+@@ -97,6 +97,7 @@
+ 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;
+Index: kvm-79+dfsg/qemu/block-qcow2.c
+===================================================================
+--- kvm-79+dfsg.orig/qemu/block-qcow2.c 2008-11-18 11:34:43.672585630 +0100
++++ kvm-79+dfsg/qemu/block-qcow2.c 2008-11-18 11:34:46.844610427 +0100
+@@ -189,7 +189,7 @@
+ 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))
+Index: kvm-79+dfsg/qemu/block-qcow.c
+===================================================================
+--- kvm-79+dfsg.orig/qemu/block-qcow.c 2008-11-18 11:34:43.692585099 +0100
++++ kvm-79+dfsg/qemu/block-qcow.c 2008-11-18 11:34:46.844610427 +0100
+@@ -95,7 +95,7 @@
+ 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))
+Index: kvm-79+dfsg/qemu/block-vmdk.c
+===================================================================
+--- kvm-79+dfsg.orig/qemu/block-vmdk.c 2008-11-18 11:34:43.708585387 +0100
++++ kvm-79+dfsg/qemu/block-vmdk.c 2008-11-18 11:34:46.844610427 +0100
+@@ -377,7 +377,7 @@
+ // 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))
+Index: kvm-79+dfsg/qemu/qemu-img.c
+===================================================================
+--- kvm-79+dfsg.orig/qemu/qemu-img.c 2008-11-18 11:41:06.385583442 +0100
++++ kvm-79+dfsg/qemu/qemu-img.c 2008-11-18 11:41:26.072584024 +0100
+@@ -25,6 +25,8 @@
+ #include "block_int.h"
+ #include
+
++int vm_running = 0;
++
+ #ifdef _WIN32
+ #define WIN32_LEAN_AND_MEAN
+ #include
+Index: kvm-79+dfsg/qemu/qemu-nbd.c
+===================================================================
+--- kvm-79+dfsg.orig/qemu/qemu-nbd.c 2008-11-18 11:41:06.441586021 +0100
++++ kvm-79+dfsg/qemu/qemu-nbd.c 2008-11-18 11:41:26.345611671 +0100
+@@ -21,6 +21,8 @@
+ #include "block_int.h"
+ #include "nbd.h"
+
++int vm_running = 0;
++
+ #include
+ #include
+ #include
--- kvm-79+dfsg.orig/debian/patches/SECURITY_CVE-2007-1321+1322+1366+2893.patch
+++ kvm-79+dfsg/debian/patches/SECURITY_CVE-2007-1321+1322+1366+2893.patch
@@ -0,0 +1,158 @@
+Index: kvm-79+dfsg/qemu/block.c
+===================================================================
+--- kvm-79+dfsg.orig/qemu/block.c 2008-11-18 11:52:02.272584723 +0100
++++ kvm-79+dfsg/qemu/block.c 2008-11-18 11:52:02.673614533 +0100
+@@ -642,8 +642,14 @@
+ return -EDOM;
+ if (drv->bdrv_pwrite) {
+ int ret, len;
++ int64_t ns;
++
+ len = nb_sectors * 512;
+- ret = drv->bdrv_pwrite(bs, sector_num * 512, buf, len);
++ ns = sector_num * 512;
++ if (ns < 0)
++ return -EINVAL;
++
++ ret = drv->bdrv_pwrite(bs, ns, buf, len);
+ if (ret < 0)
+ return ret;
+ else if (ret != len)
+Index: kvm-79+dfsg/qemu/hw/dma.c
+===================================================================
+--- kvm-79+dfsg.orig/qemu/hw/dma.c 2008-11-18 11:51:51.965586906 +0100
++++ kvm-79+dfsg/qemu/hw/dma.c 2008-11-18 11:52:02.673614533 +0100
+@@ -349,9 +349,11 @@
+ #endif
+
+ r = dma_controllers[ncont].regs + ichan;
+- n = r->transfer_handler (r->opaque, ichan + (ncont << 2),
+- r->now[COUNT], (r->base[COUNT] + 1) << ncont);
+- r->now[COUNT] = n;
++ if (r->transfer_handler) {
++ n = r->transfer_handler (r->opaque, ichan + (ncont << 2),
++ r->now[COUNT], (r->base[COUNT] + 1) << ncont);
++ r->now[COUNT] = n;
++ }
+ ldebug ("dma_pos %d size %d\n", n, (r->base[COUNT] + 1) << ncont);
+ }
+
+Index: kvm-79+dfsg/qemu/hw/pc.c
+===================================================================
+--- kvm-79+dfsg.orig/qemu/hw/pc.c 2008-11-18 11:51:51.985586305 +0100
++++ kvm-79+dfsg/qemu/hw/pc.c 2008-11-18 11:52:02.677614063 +0100
+@@ -387,7 +387,8 @@
+ case 0x400:
+ case 0x401:
+ fprintf(stderr, "BIOS panic at rombios.c, line %d\n", val);
+- exit(1);
++ /* according to documentation, these can be safely ignored */
++ break;
+ case 0x402:
+ case 0x403:
+ #ifdef DEBUG_BIOS
+@@ -410,8 +411,9 @@
+ /* LGPL'ed VGA BIOS messages */
+ case 0x501:
+ case 0x502:
++ /* according to documentation, these can be safely ignored */
+ fprintf(stderr, "VGA BIOS panic, line %d\n", val);
+- exit(1);
++ break;
+ case 0x500:
+ case 0x503:
+ #ifdef DEBUG_BIOS
+Index: kvm-79+dfsg/qemu/hw/sb16.c
+===================================================================
+--- kvm-79+dfsg.orig/qemu/hw/sb16.c 2008-11-18 11:51:52.057613546 +0100
++++ kvm-79+dfsg/qemu/hw/sb16.c 2008-11-18 11:52:02.677614063 +0100
+@@ -1246,8 +1246,10 @@
+ s->block_size);
+ #endif
+
+- while (s->left_till_irq <= 0) {
+- s->left_till_irq = s->block_size + s->left_till_irq;
++ if (s->block_size) {
++ while (s->left_till_irq <= 0) {
++ s->left_till_irq = s->block_size + s->left_till_irq;
++ }
+ }
+
+ return dma_pos;
+Index: kvm-79+dfsg/qemu/slirp/slirp.c
+===================================================================
+--- kvm-79+dfsg.orig/qemu/slirp/slirp.c 2008-11-18 11:51:52.077613853 +0100
++++ kvm-79+dfsg/qemu/slirp/slirp.c 2008-11-18 11:52:02.677614063 +0100
+@@ -654,6 +654,10 @@
+ if (!m)
+ return;
+ /* Note: we add to align the IP header */
++ /* taviso: large values in ne2k TCNT register may exceed msize on transmit */
++ if (M_FREEROOM(m) < pkt_len + 2) {
++ m_inc(m, pkt_len + 2);
++ }
+ m->m_len = pkt_len + 2;
+ memcpy(m->m_data + 2, pkt, pkt_len);
+
+Index: kvm-79+dfsg/qemu/target-i386/translate.c
+===================================================================
+--- kvm-79+dfsg.orig/qemu/target-i386/translate.c 2008-11-18 11:51:52.129601606 +0100
++++ kvm-79+dfsg/qemu/target-i386/translate.c 2008-11-18 11:52:02.685612007 +0100
+@@ -6564,6 +6564,7 @@
+ gen_jmp_im(pc_start - s->cs_base);
+ tcg_gen_helper_0_1(helper_into, tcg_const_i32(s->pc - pc_start));
+ break;
++#ifdef WANT_ICEBP
+ case 0xf1: /* icebp (undocumented, exits to external debugger) */
+ gen_svm_check_intercept(s, pc_start, SVM_EXIT_ICEBP);
+ #if 1
+@@ -6574,6 +6575,7 @@
+ cpu_set_log(CPU_LOG_INT | CPU_LOG_TB_IN_ASM);
+ #endif
+ break;
++#endif /* icebp */
+ case 0xfa: /* cli */
+ if (!s->vm86) {
+ if (s->cpl <= s->iopl) {
+Index: kvm-79+dfsg/qemu/net.c
+===================================================================
+--- kvm-79+dfsg.orig/qemu/net.c 2008-11-18 11:56:35.536584546 +0100
++++ kvm-79+dfsg/qemu/net.c 2008-11-18 11:56:38.816588988 +0100
+@@ -1219,8 +1219,8 @@
+ 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;
+@@ -1251,7 +1251,8 @@
+ 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;
+
+@@ -1290,7 +1291,15 @@
+ 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;
--- kvm-79+dfsg.orig/debian/patches/do-not-install-bios.patch
+++ kvm-79+dfsg/debian/patches/do-not-install-bios.patch
@@ -0,0 +1,20 @@
+Index: kvm-79+dfsg/qemu/Makefile
+===================================================================
+--- kvm-79+dfsg.orig/qemu/Makefile 2008-11-18 10:29:53.136584477 +0100
++++ kvm-79+dfsg/qemu/Makefile 2008-11-18 12:00:43.732589696 +0100
+@@ -236,15 +236,6 @@
+ ifneq ($(TOOLS),)
+ $(INSTALL) -m 755 -s $(TOOLS) "$(DESTDIR)$(bindir)"
+ endif
+- mkdir -p "$(DESTDIR)$(datadir)"
+- set -e; for x in bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \
+- video.x openbios-sparc32 openbios-sparc64 pxe-ne2k_pci.bin \
+- pxe-rtl8139.bin pxe-pcnet.bin pxe-e1000.bin extboot.bin \
+- bamboo.dtb; \
+- do \
+- [ -f $(SRC_PATH)/pc-bios/$$x ] && \
+- $(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
+- done
+ ifndef CONFIG_WIN32
+ mkdir -p "$(DESTDIR)$(datadir)/keymaps"
+ set -e; for x in $(KEYMAPS); do \
--- kvm-79+dfsg.orig/debian/patches/from-debian-qemu/62_linux_boot_nasm.patch
+++ kvm-79+dfsg/debian/patches/from-debian-qemu/62_linux_boot_nasm.patch
@@ -0,0 +1,59 @@
+Taken from Debian's qemu-0.8.2. Buildd fails building kvm on amd64 without this.
+
+#DPATCHLEVEL=0
+Index: qemu/pc-bios/linux_boot.asm
+===================================================================
+--- /dev/null
++++ qemu/pc-bios/linux_boot.asm
+@@ -0,0 +1,31 @@
++;
++; QEMU Boot sector to launch a preloaded Linux kernel
++; Copyright (c) 2004 Fabrice Bellard
++; Copyright (c) 2006 Guillem Jover
++;
++
++LOAD_SEG equ 0x9000
++
++bits 16
++global _start
++
++section .text
++
++_start:
++ cli
++ cld
++ mov ax, LOAD_SEG
++ mov ds, ax
++ mov es, ax
++ mov fs, ax
++ mov gs, ax
++ mov ss, ax
++ mov sp, 0x8ffe
++ jmp LOAD_SEG + 0x20:0
++
++ times 510 - ($ - $$) db 0
++
++ ; boot sector signature
++ db 0x55
++ db 0xaa
++
+Index: qemu/pc-bios/Makefile
+===================================================================
+--- qemu/pc-bios/Makefile.orig
++++ qemu/pc-bios/Makefile
+@@ -5,12 +5,12 @@
+
+ DEFINES=
+
+-TARGETS=
++TARGETS+=linux_boot.bin
+
+ all: $(TARGETS)
+
+-%.o: %.S
+- $(CC) $(DEFINES) -c -o $@ $<
++linux_boot.bin: linux_boot.asm
++ nasm -f bin -o $@ $<
+
+ clean:
+ rm -f $(TARGETS) *.o *~
--- kvm-79+dfsg.orig/debian/patches/from-debian-qemu/22_net_tuntap_stall.patch
+++ kvm-79+dfsg/debian/patches/from-debian-qemu/22_net_tuntap_stall.patch
@@ -0,0 +1,19 @@
+Patch from Debian QEMU (SVN r95), see bugs.debian.org #290569 for
+documentation:
+
+Fix TUN/TAP nwtwork interface stalling the connection. (Closes: #290569)
+Thanks to Vitaly Belostotsky .
+
+Index: qemu/net.c
+===================================================================
+--- qemu/net.c.orig 2008-11-18 10:31:44.836586293 +0100
++++ qemu/net.c 2008-11-18 10:32:25.680587207 +0100
+@@ -1052,7 +1052,7 @@
+ return -1;
+ }
+ memset(&ifr, 0, sizeof(ifr));
+- ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
++ ifr.ifr_flags = IFF_TAP | IFF_NO_PI | IFF_ONE_QUEUE;
+
+ #if defined(TUNGETFEATURES) && defined(IFF_VNET_HDR)
+ {