--- kvm-71+dfsg.orig/Makefile +++ kvm-71+dfsg/Makefile @@ -1,5 +1,5 @@ -include config.mak +-include config.mak DESTDIR= --- kvm-71+dfsg.orig/bios/Makefile +++ kvm-71+dfsg/bios/Makefile @@ -64,6 +64,7 @@ rm -f *.o *.a *.s _rombios*_.c rombios*.txt rombios*.sym rm -f usage biossums rombios16.bin rm -f rombios32.bin rombios32.out acpi-dsdt.hex + rm -f acpi-dsdt.aml dist-clean: clean rm -f Makefile --- kvm-71+dfsg.orig/bios/Makefile.in +++ kvm-71+dfsg/bios/Makefile.in @@ -64,6 +64,7 @@ @RMCOMMAND@ *.o *.a *.s _rombios*_.c rombios*.txt rombios*.sym @RMCOMMAND@ usage biossums rombios16.bin @RMCOMMAND@ rombios32.bin rombios32.out + @RMCOMMAND@ acpi-dsdt.aml dist-clean: clean @RMCOMMAND@ Makefile --- kvm-71+dfsg.orig/qemu/Makefile +++ kvm-71+dfsg/qemu/Makefile @@ -1,6 +1,6 @@ # Makefile for QEMU. -include config-host.mak +-include config-host.mak .PHONY: all clean distclean dvi info install install-doc tar tarbin \ speed test html dvi info --- kvm-71+dfsg.orig/qemu/pc-bios/Makefile +++ kvm-71+dfsg/qemu/pc-bios/Makefile @@ -1,7 +1,7 @@ # # NOTE: only compilable with x86 cross compile tools # -include ../config-host.mak +-include ../config-host.mak DEFINES= --- kvm-71+dfsg.orig/libfdt/Makefile +++ kvm-71+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-71+dfsg.orig/scripts/qemu-ifup +++ kvm-71+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&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 --- kvm-71+dfsg.orig/debian/watch +++ kvm-71+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-71+dfsg.orig/debian/preinst +++ kvm-71+dfsg/debian/preinst @@ -0,0 +1,63 @@ +#!/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 . + +GROUP=kvm + +# Workaround for bug in addgroup +. /etc/adduser.conf +[ -z "$FIRST_SYSTEM_UID" ] && exit 1 +[ -z "$LAST_SYSTEM_UID" ] && exit 2 + +GID=$(grep ${GROUP} /etc/group >/dev/null && grep ${GROUP} /etc/group | cut -d ':' -f 3) + +if [ -n "$GID" ] \ + && [ "$GID" -lt "$FIRST_SYSTEM_UID" \ + -o "$GID" -gt "$LAST_SYSTEM_UID" ]; then + cat >&2 <&2 "Error: failed to add the group ${GROUP}." + exit 4 + fi +else + echo >&2 "kvm: Using the existing group \"$GROUP\" (gid $GID) for /dev/kvm" +fi + +# 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-71+dfsg.orig/debian/control.modules.in +++ kvm-71+dfsg/debian/control.modules.in @@ -0,0 +1,20 @@ +Source: kvm +Section: misc +Priority: optional +Maintainer: Baruch Even +Build-Depends: debhelper (>> 4.0.0) +Standards-Version: 3.7.2 + +Package: kvm-modules-_KVERS_ +Architecture: any +Provides: kvm-modules +Description: kvm modules for Linux (kernel _KVERS_). + This package contains the set of loadable kernel modules for the + KVM module that provides Kernel Virtual Machine services. + . + This package contains the compiled kernel modules for _KVERS_ + . + If you have compiled your own kernel, you will most likely need to build + your own kvm-modules. The kvm-source package has been + provided for use with the Debian's module-assistant or kernel-package + utilities to produce a version of kvm-module for your kernel. --- kvm-71+dfsg.orig/debian/kvm.1 +++ kvm-71+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-71+dfsg.orig/debian/kvm-source.links +++ kvm-71+dfsg/debian/kvm-source.links @@ -0,0 +1 @@ +usr/share/modass/packages/default.sh usr/share/modass/overrides/kvm-source --- kvm-71+dfsg.orig/debian/kvm.install +++ kvm-71+dfsg/debian/kvm.install @@ -0,0 +1,8 @@ +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/* --- kvm-71+dfsg.orig/debian/postrm.modules.in +++ kvm-71+dfsg/debian/postrm.modules.in @@ -0,0 +1,31 @@ +#!/bin/sh + +set -e + +drivers="kvm kvm-intel kvm-amd" +dir=/lib/modules/@KERNEL@/kernel/drivers/kvm + +case "${1}" in + remove) + for driver in $drivers; do + if [ -e "$dir/$driver.ko.linux" ]; then + dpkg-divert --package kvm-modules-@KERNEL@ --remove --rename \ + --divert $dir/$driver.ko.linux \ + $dir/$driver.ko + fi + done + ;; + + purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 --- kvm-71+dfsg.orig/debian/reportbug-hook.sh +++ kvm-71+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-71+dfsg.orig/debian/kvm.udev +++ kvm-71+dfsg/debian/kvm.udev @@ -0,0 +1 @@ +KERNEL=="kvm", NAME="%k", GROUP="kvm", MODE="0660" --- kvm-71+dfsg.orig/debian/TODO +++ kvm-71+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-71+dfsg.orig/debian/kvm.init +++ kvm-71+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-71+dfsg.orig/debian/copyright +++ kvm-71+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-71+dfsg.orig/debian/README.source +++ kvm-71+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-71+dfsg.orig/debian/compat +++ kvm-71+dfsg/debian/compat @@ -0,0 +1 @@ +5 --- kvm-71+dfsg.orig/debian/changelog.upstream +++ kvm-71+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-71+dfsg.orig/debian/kvm-source.install +++ kvm-71+dfsg/debian/kvm-source.install @@ -0,0 +1,2 @@ +usr/share/bug/kvm-source +usr/src/kvm.tar.bz2 --- kvm-71+dfsg.orig/debian/rules +++ kvm-71+dfsg/debian/rules @@ -0,0 +1,366 @@ +#!/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 + +# some default definitions, important! +# +# Name of the source package +psource:=kvm-source + +# The short upstream name, used for the module source directory +sname:=kvm + +### KERNEL SETUP +### Setup the stuff needed for making kernel module packages +### taken from /usr/share/kernel-package/sample.module.rules + +# prefix of the target package name +PACKAGE=kvm-modules +# modifieable for experiments or debugging m-a +MA_DIR ?= /usr/share/modass +# load generic variable handling +-include $(MA_DIR)/include/generic.make +# load default rules, including kdist, kdist_image, ... +-include $(MA_DIR)/include/common-rules.make + +# module assistant calculates all needed things for us and sets +# following variables: +# KSRC (kernel source directory), KVERS (kernel version string), KDREV +# (revision of the Debian kernel-image package), CC (the correct +# compiler), VERSION (the final package version string), PKGNAME (full +# package name with KVERS included), DEB_DESTDIR (path to store DEBs) + +# The kdist_configure target is called by make-kpkg modules_config and +# by kdist* rules by dependency. It should configure the module so it is +# ready for compilation (mostly useful for calling configure). +# prep-deb-files from module-assistant creates the neccessary debian/ files +kdist_config kdist_configure: prep-deb-files + +# the kdist_clean target is called by make-kpkg modules_clean and from +# kdist* rules. It is responsible for cleaning up any changes that have +# been made by the other kdist_commands (except for the .deb files created) +kdist_clean: + $(MAKE) KERNELDIR=$(KSRC) KVERREL=$(KVERS) clean +# rm -f driver/*.o driver/*.ko +# +### end KERNEL SETUP + +# the binary-modules rule is invoked by module-assistant while processing the +# kdist* targets. It is called by module-assistant or make-kpkg and *not* +# during a normal build +binary-modules: + dh_testroot + dh_clean -k + dh_installdirs lib/modules/$(KVERS)/misc + + # Build the modules + $(MAKE) KERNELDIR=$(KSRC) KVERREL=$(KVERS) + + # Install the modules + cp kvm.ko kvm-intel.ko kvm-amd.ko debian/$(PKGNAME)/lib/modules/$(KVERS)/misc + + dh_installdocs + dh_installchangelogs + dh_installmodules + sed -e "s/@KERNEL@/$(KVERS)/g" debian/preinst.modules.in > debian/preinst + sed -e "s/@KERNEL@/$(KVERS)/g" debian/postrm.modules.in > debian/postrm + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol -- -v$(VERSION) + dh_md5sums + dh_builddeb --destdir=$(DEB_DESTDIR) + dh_clean -k + +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/ + + # 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/modules/kvm/debian + cp -r kernel/* debian/tmp/usr/src/modules/kvm + # Copy the needed debian/ pieces to the proper location + cp debian/*modules.in* \ + debian/tmp/usr/src/modules/kvm/debian + cp debian/rules debian/changelog debian/copyright \ + debian/compat debian/tmp/usr/src/modules/kvm/debian/ + cd debian/tmp/usr/src && tar c modules | bzip2 -9 > kvm.tar.bz2 && rm -rf modules + + 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_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-71+dfsg.orig/debian/control +++ kvm-71+dfsg/debian/control @@ -0,0 +1,71 @@ +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) +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 x86 hardware + Using KVM, one can run multiple virtual PC:s, 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 hardware with x86 guests. 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, module-assistant +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-71+dfsg.orig/debian/changelog +++ kvm-71+dfsg/debian/changelog @@ -0,0 +1,819 @@ +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 (1:70+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. + + -- Soren Hansen Fri, 04 Jul 2008 14:32:16 +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-71+dfsg.orig/debian/patches/06_no_system_linux_kvm_h.patch +++ kvm-71+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-71+dfsg.orig/debian/patches/03_bios_no_ssp.patch +++ kvm-71+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-71+dfsg.orig/debian/patches/01_use_bios_files_in_usr_share_kvm.patch +++ kvm-71+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-71+dfsg.orig/debian/patches/do-not-install-bios.patch +++ kvm-71+dfsg/debian/patches/do-not-install-bios.patch @@ -0,0 +1,19 @@ +Index: kvm/qemu/Makefile +=================================================================== +--- kvm.orig/qemu/Makefile ++++ kvm/qemu/Makefile +@@ -198,14 +198,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 \ +- $(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-71+dfsg.orig/debian/patches/04_use_etc_kvm_kvm-ifup.patch +++ kvm-71+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-71+dfsg.orig/debian/patches/CVE-2008-0928.patch +++ kvm-71+dfsg/debian/patches/CVE-2008-0928.patch @@ -0,0 +1,248 @@ +Index: kvm/qemu/block.c +=================================================================== +--- kvm.orig/qemu/block.c 2008-05-26 11:49:39.374926640 +0200 ++++ kvm/qemu/block.c 2008-05-26 14:22:01.783759224 +0200 +@@ -24,10 +24,14 @@ + #include "qemu-common.h" + #ifndef QEMU_IMG + #include "console.h" ++extern int vm_running; ++#else ++int vm_running = 0; + #endif + #include "block_int.h" + #include "osdep.h" + ++ + #ifdef _BSD + #include + #include +@@ -124,6 +128,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) + { +@@ -336,6 +409,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; +@@ -380,6 +457,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 +@@ -445,6 +523,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); +@@ -517,6 +596,8 @@ + if (!drv) + return -ENOMEDIUM; + ++ if (bdrv_rd_badreq_sectors(bs, sector_num, nb_sectors)) ++ return -EDOM; + if (sector_num == 0 && bs->boot_sector_enabled && nb_sectors > 0) { + memcpy(buf, bs->boot_sector_data, 512); + sector_num++; +@@ -557,6 +638,8 @@ + return -ENOMEDIUM; + if (bs->read_only) + return -EACCES; ++ if (bdrv_wr_badreq_sectors(bs, sector_num, nb_sectors)) ++ return -EDOM; + if (sector_num == 0 && bs->boot_sector_enabled && nb_sectors > 0) { + memcpy(bs->boot_sector_data, buf, 512); + } +@@ -682,6 +765,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 +782,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); + } + +@@ -1102,6 +1189,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); + } + +@@ -1248,6 +1337,8 @@ + + if (!drv) + return NULL; ++ if (bdrv_rd_badreq_sectors(bs, sector_num, nb_sectors)) ++ return NULL; + + /* XXX: we assume that nb_sectors == 0 is suppored by the async read */ + if (sector_num == 0 && bs->boot_sector_enabled && nb_sectors > 0) { +@@ -1279,6 +1370,8 @@ + return NULL; + if (bs->read_only) + return NULL; ++ if (bdrv_wr_badreq_sectors(bs, sector_num, nb_sectors)) ++ return NULL; + if (sector_num == 0 && bs->boot_sector_enabled && nb_sectors > 0) { + memcpy(bs->boot_sector_data, buf, 512); + } +Index: kvm/qemu/block.h +=================================================================== +--- kvm.orig/qemu/block.h 2008-05-26 11:49:39.386926754 +0200 ++++ kvm/qemu/block.h 2008-05-26 14:21:38.946711024 +0200 +@@ -45,6 +45,7 @@ + it (default for + bdrv_file_open()) */ + #define BDRV_O_DIRECT 0x0020 ++#define BDRV_O_AUTOGROW 0x0040 /* Allow backing file to extend when writing past end of file */ + + #ifndef QEMU_IMG + void bdrv_info(void); +Index: kvm/qemu/block_int.h +=================================================================== +--- kvm.orig/qemu/block_int.h 2008-05-26 11:49:39.398929732 +0200 ++++ kvm/qemu/block_int.h 2008-05-26 14:21:38.950712529 +0200 +@@ -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/qemu/block-qcow2.c +=================================================================== +--- kvm.orig/qemu/block-qcow2.c 2008-05-26 11:49:39.414926741 +0200 ++++ kvm/qemu/block-qcow2.c 2008-05-26 14:21:39.002715048 +0200 +@@ -191,7 +191,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/qemu/block-qcow.c +=================================================================== +--- kvm.orig/qemu/block-qcow.c 2008-05-26 11:49:39.426926157 +0200 ++++ kvm/qemu/block-qcow.c 2008-05-26 14:21:39.054722316 +0200 +@@ -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/qemu/block-vmdk.c +=================================================================== +--- kvm.orig/qemu/block-vmdk.c 2008-05-26 11:49:39.438926620 +0200 ++++ kvm/qemu/block-vmdk.c 2008-05-26 14:21:39.058701261 +0200 +@@ -377,7 +377,7 @@ + flags = BDRV_O_RDONLY; + fprintf(stderr, "(VMDK) image open: flags=0x%x filename=%s\n", flags, bs->filename); + +- 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)) --- kvm-71+dfsg.orig/debian/patches/qemu_vnc_ext_key_event.diff +++ kvm-71+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-71+dfsg.orig/debian/patches/07_change_qemu_docdir.patch +++ kvm-71+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-71+dfsg.orig/debian/patches/series +++ kvm-71+dfsg/debian/patches/series @@ -0,0 +1,12 @@ +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 +qemu_vnc_ext_key_event.diff +do-not-install-bios.patch --- kvm-71+dfsg.orig/debian/patches/02_fix_kernel_Makefile.patch +++ kvm-71+dfsg/debian/patches/02_fix_kernel_Makefile.patch @@ -0,0 +1,10 @@ +Index: kvm/kernel/Makefile +=================================================================== +--- kvm.orig/kernel/Makefile ++++ kvm/kernel/Makefile +@@ -1,5 +1,3 @@ +-include ../config.mak +- + ARCH_DIR = $(if $(filter $(ARCH),x86_64 i386),x86,$(ARCH)) + ARCH_CONFIG := $(shell echo $(ARCH_DIR) | tr '[:lower:]' '[:upper:]') + --- kvm-71+dfsg.orig/debian/patches/SECURITY_CVE-2007-1321+1322+1366+2893.patch +++ kvm-71+dfsg/debian/patches/SECURITY_CVE-2007-1321+1322+1366+2893.patch @@ -0,0 +1,165 @@ +Index: kvm-66+dfsg/qemu/block.c +=================================================================== +--- kvm-66+dfsg.orig/qemu/block.c 2008-05-06 09:29:38.992384712 +0200 ++++ kvm-66+dfsg/qemu/block.c 2008-05-06 09:32:45.132364452 +0200 +@@ -614,13 +614,21 @@ + return -EACCES; + if (bdrv_wr_badreq_sectors(bs, sector_num, nb_sectors)) + return -EDOM; ++ if (sector_num < 0) ++ return -EINVAL; + if (sector_num == 0 && bs->boot_sector_enabled && nb_sectors > 0) { + memcpy(bs->boot_sector_data, buf, 512); + } + 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-66+dfsg/qemu/hw/dma.c +=================================================================== +--- kvm-66+dfsg.orig/qemu/hw/dma.c 2008-04-15 15:35:58.000000000 +0200 ++++ kvm-66+dfsg/qemu/hw/dma.c 2008-05-06 09:31:17.908364860 +0200 +@@ -341,9 +341,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-66+dfsg/qemu/hw/pc.c +=================================================================== +--- kvm-66+dfsg.orig/qemu/hw/pc.c 2008-04-15 15:35:58.000000000 +0200 ++++ kvm-66+dfsg/qemu/hw/pc.c 2008-05-06 09:31:17.912364464 +0200 +@@ -341,7 +341,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 +@@ -364,8 +365,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-66+dfsg/qemu/hw/sb16.c +=================================================================== +--- kvm-66+dfsg.orig/qemu/hw/sb16.c 2008-04-15 15:35:58.000000000 +0200 ++++ kvm-66+dfsg/qemu/hw/sb16.c 2008-05-06 09:31:17.924364358 +0200 +@@ -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-66+dfsg/qemu/slirp/slirp.c +=================================================================== +--- kvm-66+dfsg.orig/qemu/slirp/slirp.c 2008-04-15 15:35:58.000000000 +0200 ++++ kvm-66+dfsg/qemu/slirp/slirp.c 2008-05-06 09:31:17.947879149 +0200 +@@ -620,6 +620,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-66+dfsg/qemu/target-i386/translate.c +=================================================================== +--- kvm-66+dfsg.orig/qemu/target-i386/translate.c 2008-04-15 15:35:58.000000000 +0200 ++++ kvm-66+dfsg/qemu/target-i386/translate.c 2008-05-06 09:31:17.951865828 +0200 +@@ -5452,6 +5452,7 @@ + gen_jmp_im(pc_start - s->cs_base); + gen_op_into(s->pc - pc_start); + break; ++#ifdef WANT_ICEBP + case 0xf1: /* icebp (undocumented, exits to external debugger) */ + if (gen_svm_check_intercept(s, pc_start, SVM_EXIT_ICEBP)) + break; +@@ -5463,6 +5464,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-66+dfsg/qemu/vl.c +=================================================================== +--- kvm-66+dfsg.orig/qemu/vl.c 2008-05-06 09:29:38.956364815 +0200 ++++ kvm-66+dfsg/qemu/vl.c 2008-05-06 09:31:17.955866376 +0200 +@@ -4294,8 +4294,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; +@@ -4326,7 +4326,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; + +@@ -4365,7 +4366,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-71+dfsg.orig/debian/patches/from-debian-qemu/62_linux_boot_nasm.patch +++ kvm-71+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-71+dfsg.orig/debian/patches/from-debian-qemu/22_net_tuntap_stall.patch +++ kvm-71+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/vl.c +=================================================================== +--- qemu/vl.c.orig 2007-03-31 20:59:32.000000000 +0300 ++++ qemu/vl.c 2007-03-31 20:59:35.000000000 +0300 +@@ -3269,7 +3269,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 (ifname[0] != '\0') + pstrcpy(ifr.ifr_name, IFNAMSIZ, ifname); + else