[pve-devel] r5385 - in pve-qemu-kvm/pve2: . debian debian/patches

svn-commits at proxmox.com svn-commits at proxmox.com
Mon Jan 17 06:40:09 CET 2011


Author: dietmar
Date: 2011-01-17 06:40:08 +0100 (Mon, 17 Jan 2011)
New Revision: 5385

Added:
   pve-qemu-kvm/pve2/debian/patches/set-max-nics.patch
   pve-qemu-kvm/pve2/debian/patches/use-local-linux-kvm-h.diff
Modified:
   pve-qemu-kvm/pve2/
   pve-qemu-kvm/pve2/Makefile
   pve-qemu-kvm/pve2/debian/changelog
   pve-qemu-kvm/pve2/debian/control
   pve-qemu-kvm/pve2/debian/patches/adjust-path.diff
   pve-qemu-kvm/pve2/debian/patches/enable-ksm.diff
   pve-qemu-kvm/pve2/debian/patches/fairsched.diff
   pve-qemu-kvm/pve2/debian/patches/keymap.diff
   pve-qemu-kvm/pve2/debian/patches/live-migration-fixes.diff
   pve-qemu-kvm/pve2/debian/patches/series
   pve-qemu-kvm/pve2/debian/patches/vncticket.diff
   pve-qemu-kvm/pve2/debian/rules
Log:
merge code from trunk



Property changes on: pve-qemu-kvm/pve2
___________________________________________________________________
Modified: svn:mergeinfo
   - /pve-qemu-kvm/trunk:4664-4947
   + /pve-qemu-kvm/trunk:4664-5384

Modified: pve-qemu-kvm/pve2/Makefile
===================================================================
--- pve-qemu-kvm/pve2/Makefile	2011-01-13 13:18:54 UTC (rev 5384)
+++ pve-qemu-kvm/pve2/Makefile	2011-01-17 05:40:08 UTC (rev 5385)
@@ -1,8 +1,8 @@
 RELEASE=2.0
 
 # also update debian/changelog
-KVMVER=0.12.5
-KVMPKGREL=1
+KVMVER=0.13.0
+KVMPKGREL=3
 
 KVMPACKAGE=pve-qemu-kvm
 KVMDIR=qemu-kvm
@@ -25,8 +25,6 @@
 ${KVM_DEB} kvm: ${KVMDIR}.org/README
 	rm -rf ${KVMDIR}
 	cp -a ${KVMDIR}.org ${KVMDIR}
-	#	mkdir -p /lib/modules/${KVNAME}
-	#ln -sf ${TOP}/linux-2.6.24-openvz /lib/modules/${KVNAME}/build
 	cp -a debian ${KVMDIR}/debian
 	cd ${KVMDIR}; dpkg-buildpackage -rfakeroot -us -uc
 	lintian ${KVM_DEB} || true

Modified: pve-qemu-kvm/pve2/debian/changelog
===================================================================
--- pve-qemu-kvm/pve2/debian/changelog	2011-01-13 13:18:54 UTC (rev 5384)
+++ pve-qemu-kvm/pve2/debian/changelog	2011-01-17 05:40:08 UTC (rev 5385)
@@ -1,3 +1,30 @@
+pve-qemu-kvm (0.13.0-3) unstable; urgency=low
+
+  * fix vnc keyboard altgr/shift emulation
+
+ -- Proxmox Support Team <support at proxmox.com>  Tue, 07 Dec 2010 12:45:16 +0100
+
+pve-qemu-kvm (0.13.0-2) unstable; urgency=low
+
+  * do not install unnecessary blobs (manually install blobs, use
+    --disable-blobs)
+
+  * update migration and vnc keymap patches for 0.13.0
+  
+ -- Proxmox Support Team <support at proxmox.com>  Mon, 25 Oct 2010 13:46:03 +0200
+
+pve-qemu-kvm (0.13.0-1) unstable; urgency=low
+
+  * update to qemu-kvm-0.13.0
+
+ -- Proxmox Support Team <support at proxmox.com>  Thu, 21 Oct 2010 13:38:14 +0200
+
+pve-qemu-kvm (0.12.5-2) unstable; urgency=low
+
+  * enable up to 32 NICs (as suggested in the forum)
+
+ -- Proxmox Support Team <support at proxmox.com>  Wed, 06 Oct 2010 08:23:07 +0200
+
 pve-qemu-kvm (0.12.5-1) unstable; urgency=low
 
   * update to qemu-kvm-0.12.5

Modified: pve-qemu-kvm/pve2/debian/control
===================================================================
--- pve-qemu-kvm/pve2/debian/control	2011-01-13 13:18:54 UTC (rev 5384)
+++ pve-qemu-kvm/pve2/debian/control	2011-01-17 05:40:08 UTC (rev 5385)
@@ -2,7 +2,7 @@
 Section: admin
 Priority: extra
 Maintainer: Proxmox Support Team <support at proxmox.com>
-Build-Depends: debhelper (>= 5), autotools-dev, libpci-dev, quilt, etherboot (>= 5.4.4), texi2html
+Build-Depends: debhelper (>= 5), autotools-dev, libpci-dev, quilt, texinfo, texi2html
 Standards-Version: 3.7.2
 
 Package: pve-qemu-kvm
@@ -11,6 +11,6 @@
 Conflicts: qemu, qemu-kvm, kvm, pve-kvm, pve-qemu-kvm-2.6.18
 Replaces: pve-kvm, pve-qemu-kvm-2.6.18
 Description: Full virtualization on x86 hardware
- Using KVM, one can run multiple virtual PC:s, each running unmodified Linux or
+ Using KVM, one can run multiple virtual PCs, each running unmodified Linux or
  Windows images. Each virtual machine has private virtualized hardware: a
  network card, disk, graphics adapter, etc. 

Modified: pve-qemu-kvm/pve2/debian/patches/adjust-path.diff
===================================================================
--- pve-qemu-kvm/pve2/debian/patches/adjust-path.diff	2011-01-13 13:18:54 UTC (rev 5384)
+++ pve-qemu-kvm/pve2/debian/patches/adjust-path.diff	2011-01-17 05:40:08 UTC (rev 5385)
@@ -1,26 +1,11 @@
-Index: test/configure
+Index: qemu-new/net.h
 ===================================================================
---- test.orig/configure	2010-05-11 08:18:56.000000000 +0200
-+++ test/configure	2010-05-11 08:18:58.000000000 +0200
-@@ -1975,8 +1975,8 @@
-       prefix="/usr/local"
-   fi
-   mansuffix="/share/man"
--  datasuffix="/share/qemu"
--  docsuffix="/share/doc/qemu"
-+  datasuffix="/share/kvm"
-+  docsuffix="/share/doc/pve-qemu-kvm"
-   binsuffix="/bin"
- fi
+--- qemu-new.orig/net.h	2010-10-25 12:46:09.000000000 +0200
++++ qemu-new/net.h	2010-10-25 12:46:11.000000000 +0200
+@@ -167,8 +167,8 @@
+ int do_netdev_add(Monitor *mon, const QDict *qdict, QObject **ret_data);
+ int do_netdev_del(Monitor *mon, const QDict *qdict, QObject **ret_data);
  
-Index: test/net.h
-===================================================================
---- test.orig/net.h	2010-05-11 08:18:56.000000000 +0200
-+++ test/net.h	2010-05-11 08:18:58.000000000 +0200
-@@ -166,8 +166,8 @@
- void net_host_device_add(Monitor *mon, const QDict *qdict);
- void net_host_device_remove(Monitor *mon, const QDict *qdict);
- 
 -#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup"
 -#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown"
 +#define DEFAULT_NETWORK_SCRIPT "/etc/kvm/kvm-ifup"
@@ -28,3 +13,29 @@
  #ifdef __sun__
  #define SMBD_COMMAND "/usr/sfw/sbin/smbd"
  #else
+Index: qemu-new/configure
+===================================================================
+--- qemu-new.orig/configure	2010-10-25 12:46:09.000000000 +0200
++++ qemu-new/configure	2010-10-25 12:46:11.000000000 +0200
+@@ -300,7 +300,7 @@
+ docdir="\${prefix}/share/doc/qemu"
+ bindir="\${prefix}/bin"
+ sysconfdir="\${prefix}/etc"
+-confsuffix="/qemu"
++confsuffix="/kvm"
+ slirp="yes"
+ fmod_lib=""
+ fmod_inc=""
+Index: qemu-new/net/tap.h
+===================================================================
+--- qemu-new.orig/net/tap.h	2010-10-25 12:46:29.000000000 +0200
++++ qemu-new/net/tap.h	2010-10-25 12:46:53.000000000 +0200
+@@ -29,8 +29,6 @@
+ #include "qemu-common.h"
+ #include "qemu-option.h"
+ 
+-#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup"
+-#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown"
+ 
+ int net_init_tap(QemuOpts *opts, Monitor *mon, const char *name, VLANState *vlan);
+ 

Modified: pve-qemu-kvm/pve2/debian/patches/enable-ksm.diff
===================================================================
--- pve-qemu-kvm/pve2/debian/patches/enable-ksm.diff	2011-01-13 13:18:54 UTC (rev 5384)
+++ pve-qemu-kvm/pve2/debian/patches/enable-ksm.diff	2011-01-17 05:40:08 UTC (rev 5385)
@@ -1,13 +1,13 @@
 just define MADV_MERGEABLE
 ---
 
-Index: test/exec.c
+Index: qemu-new/exec.c
 ===================================================================
---- test.orig/exec.c	2010-04-14 12:55:22.000000000 +0200
-+++ test/exec.c	2010-04-14 13:24:23.000000000 +0200
-@@ -48,6 +48,9 @@
- #include <qemu.h>
+--- qemu-new.orig/exec.c	2010-10-25 12:04:41.000000000 +0200
++++ qemu-new/exec.c	2010-10-25 12:04:47.000000000 +0200
+@@ -66,6 +66,9 @@
  #endif
+ #endif
  
 +/* our libc does not define it */
 +#define MADV_MERGEABLE   12

Modified: pve-qemu-kvm/pve2/debian/patches/fairsched.diff
===================================================================
--- pve-qemu-kvm/pve2/debian/patches/fairsched.diff	2011-01-13 13:18:54 UTC (rev 5384)
+++ pve-qemu-kvm/pve2/debian/patches/fairsched.diff	2011-01-17 05:40:08 UTC (rev 5385)
@@ -1,33 +1,34 @@
-Index: test/qemu-options.hx
+Index: qemu-kvm/qemu-options.hx
 ===================================================================
---- test.orig/qemu-options.hx	2010-05-11 08:15:36.000000000 +0200
-+++ test/qemu-options.hx	2010-05-11 08:17:02.000000000 +0200
-@@ -66,6 +66,12 @@
+--- qemu-kvm.orig/qemu-options.hx	2010-10-21 14:39:35.000000000 +0200
++++ qemu-kvm/qemu-options.hx	2010-10-21 14:41:52.000000000 +0200
+@@ -74,6 +74,12 @@
  are split equally.
  ETEXI
  
 +DEF("id", HAS_ARG, QEMU_OPTION_id,
-+    "-id n	     set the faisched ID\n")
++    "-id n	     set the faisched ID\n", QEMU_ARCH_ALL)
 +
 +DEF("cpuunits",  HAS_ARG, QEMU_OPTION_cpuunits,
-+    "-cpuuinits n    set fairsched cpu units\n")
++    "-cpuuinits n    set fairsched cpu units\n", QEMU_ARCH_ALL)
 +
  DEF("fda", HAS_ARG, QEMU_OPTION_fda,
-     "-fda/-fdb file  use 'file' as floppy disk 0/1 image\n")
- DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "")
-Index: test/vl.c
+     "-fda/-fdb file  use 'file' as floppy disk 0/1 image\n", QEMU_ARCH_ALL)
+ DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "", QEMU_ARCH_ALL)
+Index: qemu-kvm/vl.c
 ===================================================================
---- test.orig/vl.c	2010-05-11 08:15:37.000000000 +0200
-+++ test/vl.c	2010-05-11 08:18:10.000000000 +0200
-@@ -159,6 +159,7 @@
- #include "qemu-objects.h"
- #include "qemu-kvm.h"
- #include "hw/device-assignment.h"
-+#include "vzsyscalls.h"
+--- qemu-kvm.orig/vl.c	2010-10-21 14:39:35.000000000 +0200
++++ qemu-kvm/vl.c	2010-10-21 14:39:45.000000000 +0200
+@@ -152,6 +152,8 @@
+ #include "fsdev/qemu-fsdev.h"
+ #endif
  
++#include "vzsyscalls.h"
++
  #include "disas.h"
  
-@@ -220,6 +221,7 @@
+ #include "qemu_socket.h"
+@@ -202,6 +204,7 @@
  int singlestep = 0;
  const char *assigned_devices[MAX_DEV_ASSIGN_CMDLINE];
  int assigned_devices_index;
@@ -35,24 +36,15 @@
  int smp_cpus = 1;
  int max_cpus = 0;
  int smp_cores = 1;
-@@ -363,7 +365,7 @@
-     prctl(PR_SET_NAME, name);
- #endif    	
- }
-- 
-+
- /***************/
- /* ballooning */
- 
-@@ -4911,6 +4913,7 @@
+@@ -1829,6 +1832,7 @@
+ {
      const char *gdbstub_dev = NULL;
-     uint32_t boot_devices_bitmap = 0;
      int i;
 +    int cpuunits = 0;
      int snapshot, linux_boot;
+     const char *icount_option = NULL;
      const char *initrd_filename;
-     const char *kernel_filename, *kernel_cmdline;
-@@ -5573,6 +5576,20 @@
+@@ -2532,6 +2536,20 @@
                      exit(1);
                  }
                  break;
@@ -73,7 +65,7 @@
  	    case QEMU_OPTION_vnc:
                  display_type = DT_VNC;
  		vnc_display = optarg;
-@@ -5973,6 +5990,39 @@
+@@ -2851,6 +2869,39 @@
      if (ram_size == 0)
          ram_size = DEFAULT_RAM_SIZE * 1024 * 1024;
  
@@ -113,10 +105,10 @@
      /* init the dynamic translator */
      cpu_exec_init_all(tb_size * 1024 * 1024);
  
-Index: test/vzsyscalls.h
+Index: qemu-kvm/vzsyscalls.h
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ test/vzsyscalls.h	2010-05-11 08:17:02.000000000 +0200
++++ qemu-kvm/vzsyscalls.h	2010-10-21 14:39:45.000000000 +0200
 @@ -0,0 +1,47 @@
 +/*
 + *  Copyright (C) 2000-2008, Parallels, Inc. All rights reserved.

Modified: pve-qemu-kvm/pve2/debian/patches/keymap.diff
===================================================================
--- pve-qemu-kvm/pve2/debian/patches/keymap.diff	2011-01-13 13:18:54 UTC (rev 5384)
+++ pve-qemu-kvm/pve2/debian/patches/keymap.diff	2011-01-17 05:40:08 UTC (rev 5385)
@@ -1,501 +1,68 @@
-Index: test/curses.c
+Index: qemu-new/ui/vnc.c
 ===================================================================
---- test.orig/curses.c	2010-05-11 08:15:36.000000000 +0200
-+++ test/curses.c	2010-05-11 08:18:37.000000000 +0200
-@@ -238,7 +238,11 @@
-                 keysym = chr;
+--- qemu-new.orig/ui/vnc.c	2010-10-25 13:19:55.000000000 +0200
++++ qemu-new/ui/vnc.c	2010-12-07 11:52:24.000000000 +0100
+@@ -1472,6 +1472,10 @@
  
-             keycode &= ~KEY_MASK;
--            keycode |= keysym2scancode(kbd_layout, keysym);
-+
-+	    keydata_t *kd = find_keysym(kbd_layout, keysym);
-+	    if (kd) {
-+	        keycode |= kd->keycode;
-+	    }
-         }
- 
-         if (is_graphic_console()) {
-Index: test/keymaps.c
-===================================================================
---- test.orig/keymaps.c	2010-05-11 08:15:36.000000000 +0200
-+++ test/keymaps.c	2010-05-11 08:18:37.000000000 +0200
-@@ -67,6 +67,7 @@
-     char * filename;
-     char line[1024];
-     int len;
-+    int upper;
- 
-     filename = qemu_find_file(QEMU_FILE_TYPE_KEYMAP, language);
- 
-@@ -97,25 +98,66 @@
- 	    if (*end_of_keysym) {
- 		int keysym;
- 		*end_of_keysym = 0;
-+                uint8_t keymod;
-+                int deadsym;
-+
-+                keymod = 0;
-+                deadsym = 0;
-+		upper = 0;
-+redo:
-+                if (upper==1){
-+                    char *c;
-+                    for(c=line;*c;c++)
-+                        *c=toupper(*c);
-+                    keymod |= KEYMOD_SHIFT;
-+                    upper++;
-+                }
-+
- 		keysym = get_keysym(table, line);
- 		if (keysym == 0) {
-                     //		    fprintf(stderr, "Warning: unknown keysym %s\n", line);
- 		} else {
- 		    const char *rest = end_of_keysym + 1;
- 		    char *rest2;
-+		    char *modifier;
- 		    int keycode = strtol(rest, &rest2, 0);
- 
--		    if (rest && strstr(rest, "numlock")) {
--			add_to_key_range(&k->keypad_range, keycode);
--			add_to_key_range(&k->numlock_range, keysym);
--			//fprintf(stderr, "keypad keysym %04x keycode %d\n", keysym, keycode);
-+                    modifier = strtok (rest2, " ");
-+                    while (modifier != NULL) {
-+                        if (!strcmp(modifier, "shift")) {
-+                            keymod |= KEYMOD_SHIFT;
-+                        } else
-+			if (!strcmp(modifier, "addupper")) {
-+			    upper++;
-+			} else
-+                        if (!strcmp(modifier, "ctrl")) {
-+                            keymod |= KEYMOD_CTRL;
-+                        } else
-+                        if (!strcmp(modifier, "alt")) {
-+                            keymod |= KEYMOD_ALT;
-+                        } else
-+                        if (!strcmp(modifier, "altgr")) {
-+                            keymod |= KEYMOD_ALTGR;
-+                        } else
-+                        if (!strncmp(modifier, "dead_",5)) {
-+                            keymod |= KEYMOD_DEAD;
-+                            deadsym = get_keysym(table, modifier);
-+                        } else
-+                        if (!strcmp(modifier, "numlock")) {
-+			    add_to_key_range(&k->keypad_range, keycode);
-+			    add_to_key_range(&k->numlock_range, keysym);
-+			    //fprintf(stderr, "keypad keysym %04x keycode %d\n", keysym, keycode);
-+			}
-+			modifier = strtok (NULL," ");
- 		    }
- 
- 		    /* if(keycode&0x80)
- 		       keycode=(keycode<<8)^0x80e0; */
- 		    if (keysym < MAX_NORMAL_KEYCODE) {
- 			//fprintf(stderr,"Setting keysym %s (%d) to %d\n",line,keysym,keycode);
--			k->keysym2keycode[keysym] = keycode;
-+                        k->keysym2keycode[keysym].keycode = keycode;
-+                        k->keysym2keycode[keysym].keymod = keymod;
-+                        k->keysym2keycode[keysym].deadsym = deadsym;
- 		    } else {
- 			if (k->extra_count >= MAX_EXTRA_COUNT) {
- 			    fprintf(stderr,
-@@ -128,11 +170,18 @@
- #endif
- 			    k->keysym2keycode_extra[k->extra_count].
- 				keysym = keysym;
--			    k->keysym2keycode_extra[k->extra_count].
--				keycode = keycode;
-+			    k->keysym2keycode_extra[k->extra_count].kdata.
-+			        keycode = keycode;
-+			    k->keysym2keycode_extra[k->extra_count].kdata.
-+			        keymod = keymod;
-+                            k->keysym2keycode_extra[k->extra_count].kdata.
-+			        deadsym = deadsym;
-+
- 			    k->extra_count++;
- 			}
- 		    }
-+                    if (upper==1)
-+                        goto redo;
- 		}
- 	    }
- 	}
-@@ -148,14 +197,11 @@
- }
- 
- 
--int keysym2scancode(void *kbd_layout, int keysym)
-+keydata_t *find_keysym(void *kbd_layout, int keysym)
+ static void do_key_event(VncState *vs, int down, int keycode, int sym)
  {
-     kbd_layout_t *k = kbd_layout;
-     if (keysym < MAX_NORMAL_KEYCODE) {
--	if (k->keysym2keycode[keysym] == 0)
--	    fprintf(stderr, "Warning: no scancode found for keysym %d\n",
--		    keysym);
--	return k->keysym2keycode[keysym];
-+        return &k->keysym2keycode[keysym];
-     } else {
- 	int i;
- #ifdef XK_ISO_Left_Tab
-@@ -163,10 +209,10 @@
- 	    keysym = XK_Tab;
- #endif
- 	for (i = 0; i < k->extra_count; i++)
--	    if (k->keysym2keycode_extra[i].keysym == keysym)
--		return k->keysym2keycode_extra[i].keycode;
-+            if (k->keysym2keycode_extra[i].keysym == keysym)
-+                return &k->keysym2keycode_extra[i].kdata;
-     }
--    return 0;
-+    return NULL;
- }
- 
- int keycode_is_keypad(void *kbd_layout, int keycode)
-Index: test/keymaps.h
-===================================================================
---- test.orig/keymaps.h	2010-05-11 08:15:36.000000000 +0200
-+++ test/keymaps.h	2010-05-11 08:18:37.000000000 +0200
-@@ -38,13 +38,26 @@
-     struct key_range *next;
- };
- 
-+#define KEYMOD_SHIFT 0x01
-+#define KEYMOD_CTRL  0x02
-+#define KEYMOD_ALT   0x04
-+#define KEYMOD_DEAD  0x08
-+#define KEYMOD_ALTGR 0x10
++    int mods =  keycode & 0xf00;
 +
- #define MAX_NORMAL_KEYCODE 512
- #define MAX_EXTRA_COUNT 256
++    keycode &= SCANCODE_KEYMASK;
 +
-+typedef struct {
-+    uint16_t keycode;
-+    uint8_t keymod;
-+    int deadsym;
-+} keydata_t;
-+
- typedef struct {
--    uint16_t keysym2keycode[MAX_NORMAL_KEYCODE];
-+    keydata_t keysym2keycode[MAX_NORMAL_KEYCODE];
-     struct {
- 	int keysym;
--	uint16_t keycode;
-+        keydata_t kdata;
-     } keysym2keycode_extra[MAX_EXTRA_COUNT];
-     int extra_count;
-     struct key_range *keypad_range;
-@@ -53,7 +66,7 @@
- 
- 
- void *init_keyboard_layout(const name2keysym_t *table, const char *language);
--int keysym2scancode(void *kbd_layout, int keysym);
-+keydata_t *find_keysym(void *kbd_layout, int keysym);
- int keycode_is_keypad(void *kbd_layout, int keycode);
- int keysym_is_numlock(void *kbd_layout, int keysym);
- 
-Index: test/sdl.c
-===================================================================
---- test.orig/sdl.c	2010-05-11 08:15:36.000000000 +0200
-+++ test/sdl.c	2010-05-11 08:18:37.000000000 +0200
-@@ -248,7 +248,11 @@
-     if (keysym == 92 && ev->keysym.scancode == 133) {
-         keysym = 0xa5;
+     /* QEMU console switch */
+     switch(keycode) {
+     case 0x2a:                          /* Left Shift */
+@@ -1542,12 +1546,42 @@
      }
--    return keysym2scancode(kbd_layout, keysym);
-+    keydata_t *kd = find_keysym(kbd_layout, keysym);
-+    if (kd==NULL)
-+        return 0;
-+    else
-+        return kd->keycode;
- }
  
- /* specific keyboard conversions from scan codes */
-Index: test/vnc.c
-===================================================================
---- test.orig/vnc.c	2010-05-11 08:18:27.000000000 +0200
-+++ test/vnc.c	2010-05-11 08:18:37.000000000 +0200
-@@ -1443,27 +1443,85 @@
-     check_pointer_type_change(vs, kbd_mouse_is_absolute());
- }
- 
-+static void do_keycode(int keycode, int down)
-+{
-+    // fprintf (stderr, "KEY: %04x %d\n", keycode, down);
-+    if (keycode & 0x80)
-+        kbd_put_keycode(0xe0);
-+    if (down)
-+        kbd_put_keycode(keycode & 0x7f);
-+    else
-+        kbd_put_keycode(keycode | 0x80);
-+}
+     if (is_graphic_console()) {
 +
-+static void do_modifier(VncState *vs, int keycode, int down, int level)
-+{
-+    do_keycode(keycode, down);
-+    vs->modifiers_state[level][keycode] = down;
-+    if (level==0) {
-+        vs->modifiers_state[1][keycode] = down;
-+    }
-+}
++ 	/* our java vnc client never sends ALTGR, so we create
++	   an artificial up/down event */
 +
- static void reset_keys(VncState *vs)
- {
-     int i;
-     for(i = 0; i < 256; i++) {
--        if (vs->modifiers_state[i]) {
--            if (i & 0x80)
--                kbd_put_keycode(0xe0);
--            kbd_put_keycode(i | 0x80);
--            vs->modifiers_state[i] = 0;
-+        if (vs->modifiers_state[0][i]) {
-+	    do_modifier (vs, i, 0, 0);
-+        }
-+    }
-+}
++	int emul_altgr = (mods & SCANCODE_ALTGR) &&
++	    !vs->modifiers_state[0xb8];
 +
-+static void set_modifiers(VncState *vs, uint8_t reqstate, int down, int full)
-+{
-+    modifier_t *m;
-+    for(m=test_modifier; m->bit; m++) {
-+        int requested = reqstate & m->bit;
-+        /* Release unwanted modifiers */
-+        if (!down || full) {
-+            if (vs->modifiers_state[1][m->keycode] && !requested)
-+                do_modifier(vs, m->keycode, 0, 1);
-+        }
-+        /* Press desired modifiers */
-+        if (down || full) {
-+            int already_set = vs->modifiers_state[1][m->keycode];
-+            if (!already_set && requested)
-+                do_modifier(vs, m->keycode, 1, 1);
-         }
-     }
- }
- 
-+static void restore_modifiers(VncState *vs)
-+{
-+    /* Restore modifiers from reference */
-+    modifier_t *m;
-+    for(m=test_modifier; m->bit; m++) {
-+        if (vs->modifiers_state[0][m->keycode] !=
-+	    vs->modifiers_state[1][m->keycode])
-+            do_modifier(vs, m->keycode, vs->modifiers_state[0][m->keycode], 0);
-+    }
-+}
- static void press_key(VncState *vs, int keysym)
- {
--    kbd_put_keycode(keysym2scancode(vs->vd->kbd_layout, keysym) & 0x7f);
--    kbd_put_keycode(keysym2scancode(vs->vd->kbd_layout, keysym) | 0x80);
-+    keydata_t *kd = find_keysym(vs->vd->kbd_layout, keysym & 0xFFFF);
-+    if (kd==NULL)
-+        return;
++	if (emul_altgr) {
++		reset_keys(vs);
++		kbd_put_keycode(SCANCODE_EMUL0);
++		kbd_put_keycode(0xb8 & SCANCODE_KEYCODEMASK);
++	}
 +
-+    kbd_put_keycode(kd->keycode & 0x7f);
-+    kbd_put_keycode(kd->keycode | 0x80);
- }
- 
--static void do_key_event(VncState *vs, int down, int keycode, int sym)
-+static void do_key_event(VncState *vs, int down, keydata_t *kd, int sym)
- {
-+    if (kd==NULL)
-+        return;
++	int emul_shift = (mods & SCANCODE_SHIFT) &&
++	    !vs->modifiers_state[0x2a];
 +
-+    int keycode = kd->keycode;
-+    //fprintf (stderr, "SYM: %04x SCANCODE: %04x MOD %04x\n",
-+    //	     sym, keycode, kd->keymod);
++	if (emul_shift) {
++	    kbd_put_keycode(0x2a & SCANCODE_KEYCODEMASK);
++	}
 +
+         if (keycode & SCANCODE_GREY)
+             kbd_put_keycode(SCANCODE_EMUL0);
+         if (down)
+             kbd_put_keycode(keycode & SCANCODE_KEYCODEMASK);
+         else
+             kbd_put_keycode(keycode | SCANCODE_UP);
 +
-     /* QEMU console switch */
-     switch(keycode) {
-     case 0x2a:                          /* Left Shift */
-@@ -1472,23 +1530,24 @@
-     case 0x9d:                          /* Right CTRL */
-     case 0x38:                          /* Left ALT */
-     case 0xb8:                          /* Right ALT */
--        if (down)
--            vs->modifiers_state[keycode] = 1;
--        else
--            vs->modifiers_state[keycode] = 0;
--        break;
-+        do_modifier(vs, keycode, down, 0);
-+        return;
-     case 0x02 ... 0x0a: /* '1' to '9' keys */
--        if (down && vs->modifiers_state[0x1d] && vs->modifiers_state[0x38]) {
-+        if (down && vs->modifiers_state[0][0x1d] && vs->modifiers_state[0][0x38]) {
-             /* Reset the modifiers sent to the current console */
-             reset_keys(vs);
-             console_select(keycode - 0x02);
-             return;
-         }
-         break;
--    case 0x3a:                        /* CapsLock */
--    case 0x45:                        /* NumLock */
--        if (!down)
--            vs->modifiers_state[keycode] ^= 1;
-+    case 0x3a:			/* CapsLock */
-+    case 0x45:			/* NumLock */
-+        if (!down) {
-+	    if (vs->modifiers_state[0][0x45])
-+	        do_modifier(vs, keycode, 0, 0);
-+	    else
-+	        do_modifier(vs, keycode, 1, 0);
++	if (emul_shift) {
++	    kbd_put_keycode(0x2a | SCANCODE_UP);
 +	}
-         break;
-     }
- 
-@@ -1498,14 +1557,14 @@
-            toggles numlock away from the VNC window.
-         */
-         if (keysym_is_numlock(vs->vd->kbd_layout, sym & 0xFFFF)) {
--            if (!vs->modifiers_state[0x45]) {
--                vs->modifiers_state[0x45] = 1;
-+ 	    if (!vs->modifiers_state[0][0x45]) {
-+ 	        do_modifier(vs, 0x45, 1, 0);
-                 press_key(vs, 0xff7f);
-             }
-         } else {
--            if (vs->modifiers_state[0x45]) {
--                vs->modifiers_state[0x45] = 0;
--                press_key(vs, 0xff7f);
-+             if (vs->modifiers_state[0][0x45]) {
-+ 	        do_modifier(vs, 0x45, 0, 0);
-+ 		press_key(vs, 0xff7f);
-             }
-         }
-     }
-@@ -1516,28 +1575,45 @@
-            toggles capslock away from the VNC window.
-         */
-         int uppercase = !!(sym >= 'A' && sym <= 'Z');
--        int shift = !!(vs->modifiers_state[0x2a] | vs->modifiers_state[0x36]);
--        int capslock = !!(vs->modifiers_state[0x3a]);
-+        int shift = !!(vs->modifiers_state[0][0x2a] | vs->modifiers_state[0][0x36]);
-+        int capslock = !!(vs->modifiers_state[0][0x3a]);
-         if (capslock) {
-             if (uppercase == shift) {
--                vs->modifiers_state[0x3a] = 0;
-+ 	        do_modifier(vs, 0x3a, 0, 0);
-                 press_key(vs, 0xffe5);
-             }
-         } else {
-             if (uppercase != shift) {
--                vs->modifiers_state[0x3a] = 1;
-+ 	        do_modifier(vs, 0x3a, 1, 0);
-                 press_key(vs, 0xffe5);
-             }
-         }
-     }
- 
-     if (is_graphic_console()) {
--        if (keycode & 0x80)
--            kbd_put_keycode(0xe0);
--        if (down)
--            kbd_put_keycode(keycode & 0x7f);
--        else
--            kbd_put_keycode(keycode | 0x80);
-+         if (down) {
-+ 	    /* Send deadkey */
-+ 	    if (kd->keymod & KEYMOD_DEAD) {
-+ 	      keydata_t *deaddata;
-+ 	      deaddata = find_keysym(vs->vd->kbd_layout, kd->deadsym);
-+ 	      if (deaddata != NULL) {
-+                 set_modifiers(vs, deaddata->keymod, 0, 1);
-+                 do_keycode(deaddata->keycode, 1);
-+                 do_keycode(deaddata->keycode, 0);
-+                 restore_modifiers(vs);
-+ 	      }
-+ 	    }
-+ 	    set_modifiers(vs, kd->keymod, 1, 0);
-+ 	} else
-+ 	    restore_modifiers(vs);
 +
-+         do_keycode (keycode, down);
++	if (emul_altgr) {
++	    kbd_put_keycode(SCANCODE_EMUL0);
++	    kbd_put_keycode(0xb8 | SCANCODE_UP);
++	}
 +
-+ 	/* vnc never sends ALTGR, so we create an artificial up event */
-+ 	if (down && (kd->keymod & KEYMOD_ALTGR)) {
-+ 	    set_modifiers(vs, kd->keymod, 0, 0);
-+ 	}
-+
      } else {
          /* QEMU console emulation */
          if (down) {
-@@ -1638,15 +1714,9 @@
+@@ -1655,7 +1689,8 @@
+         lsym = lsym - 'A' + 'a';
+     }
  
- static void key_event(VncState *vs, int down, uint32_t sym)
- {
--    int keycode;
--    int lsym = sym;
-+     keydata_t *kd = find_keysym(vs->vd->kbd_layout, sym & 0xFFFF);
- 
--    if (lsym >= 'A' && lsym <= 'Z' && is_graphic_console()) {
--        lsym = lsym - 'A' + 'a';
--    }
--
--    keycode = keysym2scancode(vs->vd->kbd_layout, lsym & 0xFFFF);
--    do_key_event(vs, down, keycode, sym);
-+     do_key_event(vs, down, kd, sym & 0xFFFF);
- }
- 
- static void ext_key_event(VncState *vs, int down,
-@@ -1655,8 +1725,15 @@
-     /* 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);
-+    else {
-+        keydata_t kd;
+-    keycode = keysym2scancode(vs->vd->kbd_layout, lsym & 0xFFFF) & SCANCODE_KEYMASK;
++    keycode = keysym2scancode(vs->vd->kbd_layout, lsym & 0xFFFF);
 +
-+        kd.keycode = keycode;
-+	kd.keymod = 0;
-+	kd.deadsym = 0;
-+
-+	do_key_event(vs, down, &kd, sym & 0xFFFF);
-+    }
+     do_key_event(vs, down, keycode, sym);
  }
  
- static void framebuffer_update_request(VncState *vs, int incremental,
-@@ -2478,7 +2555,7 @@
- char *vnc_display_local_addr(DisplayState *ds)
- {
-     VncDisplay *vs = ds ? (VncDisplay *)ds->opaque : vnc_display;
--    
-+
-     return vnc_socket_local_addr("%s:%s", vs->lsock);
- }
- 
-Index: test/vnc.h
-===================================================================
---- test.orig/vnc.h	2010-05-11 08:18:27.000000000 +0200
-+++ test/vnc.h	2010-05-11 08:18:37.000000000 +0200
-@@ -49,6 +49,21 @@
-  *
-  *****************************************************************************/
- 
-+typedef struct {
-+    int keycode;
-+    int bit;
-+} modifier_t;
-+
-+static modifier_t test_modifier[]={
-+    {0x2a, KEYMOD_SHIFT},
-+    {0x36, KEYMOD_SHIFT},
-+    {0x1d, KEYMOD_CTRL},
-+    {0x9d, KEYMOD_CTRL},
-+    {0x38, KEYMOD_ALT},
-+    {0xb8, KEYMOD_ALTGR},
-+    {0,0},
-+};
-+
- typedef struct Buffer
- {
-     size_t capacity;
-@@ -158,7 +173,7 @@
-     VncReadEvent *read_handler;
-     size_t read_handler_expect;
-     /* input */
--    uint8_t modifiers_state[256];
-+    uint8_t modifiers_state[2][256];
- 
-     Buffer zlib;
-     Buffer zlib_tmp;

Modified: pve-qemu-kvm/pve2/debian/patches/live-migration-fixes.diff
===================================================================
--- pve-qemu-kvm/pve2/debian/patches/live-migration-fixes.diff	2011-01-13 13:18:54 UTC (rev 5384)
+++ pve-qemu-kvm/pve2/debian/patches/live-migration-fixes.diff	2011-01-17 05:40:08 UTC (rev 5385)
@@ -1,9 +1,9 @@
-Index: test/vl.c
+Index: qemu-new/arch_init.c
 ===================================================================
---- test.orig/vl.c	2010-04-14 12:58:55.000000000 +0200
-+++ test/vl.c	2010-04-14 13:24:03.000000000 +0200
-@@ -3069,9 +3069,10 @@
- static int ram_save_live(Monitor *mon, QEMUFile *f, int stage, void *opaque)
+--- qemu-new.orig/arch_init.c	2010-10-25 12:13:41.000000000 +0200
++++ qemu-new/arch_init.c	2010-10-25 12:32:51.000000000 +0200
+@@ -215,9 +215,10 @@
+ int ram_save_live(Monitor *mon, QEMUFile *f, int stage, void *opaque)
  {
      ram_addr_t addr;
 -    uint64_t bytes_transferred_last;
@@ -14,31 +14,31 @@
  
      if (stage < 0) {
          cpu_physical_memory_set_dirty_tracking(0);
-@@ -3096,10 +3097,9 @@
-         cpu_physical_memory_set_dirty_tracking(1);
+@@ -256,10 +257,10 @@
+             qemu_put_buffer(f, (uint8_t *)block->idstr, strlen(block->idstr));
+             qemu_put_be64(f, block->length);
+         }
++
++	starttime = qemu_get_clock_ns(rt_clock);
+     }
  
-         qemu_put_be64(f, last_ram_offset | RAM_SAVE_FLAG_MEM_SIZE);
--    }
- 
 -    bytes_transferred_last = bytes_transferred;
--    bwidth = get_clock();
-+	starttime = get_clock();
-+    }
+-    bwidth = qemu_get_clock_ns(rt_clock);
  
      while (!qemu_file_rate_limit(f)) {
-         int ret;
-@@ -3110,8 +3110,8 @@
-             break;
+         int bytes_sent;
+@@ -271,8 +272,8 @@
+         }
      }
  
--    bwidth = get_clock() - bwidth;
+-    bwidth = qemu_get_clock_ns(rt_clock) - bwidth;
 -    bwidth = (bytes_transferred - bytes_transferred_last) / bwidth;
-+    timediff = get_clock() - starttime;
++    timediff = qemu_get_clock_ns(rt_clock) - starttime;
 +    bwidth = bytes_transferred / timediff;
  
      /* if we haven't transferred anything this round, force expected_time to a
       * a very high value, but without crashing */
-@@ -3129,6 +3129,10 @@
+@@ -293,6 +294,10 @@
  
      qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
  

Modified: pve-qemu-kvm/pve2/debian/patches/series
===================================================================
--- pve-qemu-kvm/pve2/debian/patches/series	2011-01-13 13:18:54 UTC (rev 5384)
+++ pve-qemu-kvm/pve2/debian/patches/series	2011-01-17 05:40:08 UTC (rev 5385)
@@ -4,3 +4,5 @@
 keymap.diff
 live-migration-fixes.diff
 enable-ksm.diff
+set-max-nics.patch
+use-local-linux-kvm-h.diff

Copied: pve-qemu-kvm/pve2/debian/patches/set-max-nics.patch (from rev 5384, pve-qemu-kvm/trunk/debian/patches/set-max-nics.patch)
===================================================================
--- pve-qemu-kvm/pve2/debian/patches/set-max-nics.patch	                        (rev 0)
+++ pve-qemu-kvm/pve2/debian/patches/set-max-nics.patch	2011-01-17 05:40:08 UTC (rev 5385)
@@ -0,0 +1,13 @@
+Index: qemu-kvm/net.h
+===================================================================
+--- qemu-kvm.orig/net.h	2010-10-21 14:25:42.000000000 +0200
++++ qemu-kvm/net.h	2010-10-21 14:28:08.000000000 +0200
+@@ -122,7 +122,7 @@
+ 
+ /* NIC info */
+ 
+-#define MAX_NICS 8
++#define MAX_NICS 32
+ 
+ struct NICInfo {
+     uint8_t macaddr[6];

Copied: pve-qemu-kvm/pve2/debian/patches/use-local-linux-kvm-h.diff (from rev 5384, pve-qemu-kvm/trunk/debian/patches/use-local-linux-kvm-h.diff)
===================================================================
--- pve-qemu-kvm/pve2/debian/patches/use-local-linux-kvm-h.diff	                        (rev 0)
+++ pve-qemu-kvm/pve2/debian/patches/use-local-linux-kvm-h.diff	2011-01-17 05:40:08 UTC (rev 5385)
@@ -0,0 +1,16 @@
+
+Alway use our own version.
+
+Index: qemu-new/kvm/libkvm/libkvm.h
+===================================================================
+--- qemu-new.orig/kvm/libkvm/libkvm.h	2010-10-25 12:53:18.000000000 +0200
++++ qemu-new/kvm/libkvm/libkvm.h	2010-10-25 12:54:02.000000000 +0200
+@@ -15,7 +15,7 @@
+ #define __user /* temporary, until installed via make headers_install */
+ #endif
+ 
+-#include <linux/kvm.h>
++#include "linux/kvm.h"
+ 
+ #include <signal.h>
+ 

Modified: pve-qemu-kvm/pve2/debian/patches/vncticket.diff
===================================================================
--- pve-qemu-kvm/pve2/debian/patches/vncticket.diff	2011-01-13 13:18:54 UTC (rev 5384)
+++ pve-qemu-kvm/pve2/debian/patches/vncticket.diff	2011-01-17 05:40:08 UTC (rev 5385)
@@ -1,8 +1,8 @@
-Index: test/console.h
+Index: qemu-kvm/console.h
 ===================================================================
---- test.orig/console.h	2010-05-11 08:15:36.000000000 +0200
-+++ test/console.h	2010-05-11 08:18:27.000000000 +0200
-@@ -322,7 +322,7 @@
+--- qemu-kvm.orig/console.h	2010-10-21 13:40:20.000000000 +0200
++++ qemu-kvm/console.h	2010-10-21 14:06:21.000000000 +0200
+@@ -368,7 +368,7 @@
  void vnc_display_init(DisplayState *ds);
  void vnc_display_close(DisplayState *ds);
  int vnc_display_open(DisplayState *ds, const char *display);
@@ -11,11 +11,11 @@
  void do_info_vnc_print(Monitor *mon, const QObject *data);
  void do_info_vnc(Monitor *mon, QObject **ret_data);
  char *vnc_display_local_addr(DisplayState *ds);
-Index: test/vnc.c
+Index: qemu-kvm/ui/vnc.c
 ===================================================================
---- test.orig/vnc.c	2010-05-11 08:15:37.000000000 +0200
-+++ test/vnc.c	2010-05-11 08:18:27.000000000 +0200
-@@ -1765,7 +1765,7 @@
+--- qemu-kvm.orig/ui/vnc.c	2010-10-21 13:40:21.000000000 +0200
++++ qemu-kvm/ui/vnc.c	2010-10-21 14:06:21.000000000 +0200
+@@ -1790,7 +1790,7 @@
  static void set_pixel_conversion(VncState *vs)
  {
      if ((vs->clientds.flags & QEMU_BIG_ENDIAN_FLAG) ==
@@ -23,17 +23,17 @@
 +        (vs->ds->surface->flags & QEMU_BIG_ENDIAN_FLAG) &&
          !memcmp(&(vs->clientds.pf), &(vs->ds->surface->pf), sizeof(PixelFormat))) {
          vs->write_pixels = vnc_write_pixels_copy;
-         switch (vs->ds->surface->pf.bits_per_pixel) {
-@@ -1873,7 +1873,7 @@
-         vnc_write_u8(vs, 0);  /* msg id */
+         vnc_hextile_set_pixel_conversion(vs, 0);
+@@ -1876,7 +1876,7 @@
+         vnc_write_u8(vs, VNC_MSG_SERVER_FRAMEBUFFER_UPDATE);
          vnc_write_u8(vs, 0);
          vnc_write_u16(vs, 1); /* number of rects */
 -        vnc_framebuffer_update(vs, 0, 0, ds_get_width(vs->ds), 
 +        vnc_framebuffer_update(vs, 0, 0, ds_get_width(vs->ds),
                                 ds_get_height(vs->ds), VNC_ENCODING_WMVi);
          pixel_format_message(vs);
-         vnc_flush(vs);
-@@ -2070,7 +2070,10 @@
+         vnc_unlock_output(vs);
+@@ -2079,7 +2079,10 @@
      int i, j, pwlen;
      unsigned char key[8];
  
@@ -45,7 +45,7 @@
          VNC_DEBUG("No password configured on server");
          vnc_write_u32(vs, 1); /* Reject auth */
          if (vs->minor >= 8) {
-@@ -2446,7 +2449,7 @@
+@@ -2478,7 +2481,7 @@
  #endif
  }
  
@@ -54,7 +54,7 @@
  {
      VncDisplay *vs = ds ? (VncDisplay *)ds->opaque : vnc_display;
  
-@@ -2461,6 +2464,7 @@
+@@ -2493,6 +2496,7 @@
      if (password && password[0]) {
          if (!(vs->password = qemu_strdup(password)))
              return -1;
@@ -62,43 +62,51 @@
          if (vs->auth == VNC_AUTH_NONE) {
              vs->auth = VNC_AUTH_VNC;
          }
-Index: test/vnc.h
+Index: qemu-kvm/ui/vnc.h
 ===================================================================
---- test.orig/vnc.h	2010-05-11 08:15:37.000000000 +0200
-+++ test/vnc.h	2010-05-11 08:18:27.000000000 +0200
-@@ -104,6 +104,7 @@
+--- qemu-kvm.orig/ui/vnc.h	2010-10-21 13:40:20.000000000 +0200
++++ qemu-kvm/ui/vnc.h	2010-10-21 14:06:21.000000000 +0200
+@@ -120,6 +120,7 @@
  
      char *display;
      char *password;
 +    int retries;
      int auth;
+     bool lossy;
  #ifdef CONFIG_VNC_TLS
-     int subauth; /* Used by VeNCrypt */
-Index: test/monitor.c
+Index: qemu-kvm/monitor.c
 ===================================================================
---- test.orig/monitor.c	2010-05-11 08:15:36.000000000 +0200
-+++ test/monitor.c	2010-05-11 08:18:27.000000000 +0200
-@@ -951,11 +951,17 @@
+--- qemu-kvm.orig/monitor.c	2010-10-21 13:40:21.000000000 +0200
++++ qemu-kvm/monitor.c	2010-10-21 14:14:38.000000000 +0200
+@@ -978,7 +978,7 @@
  
- static void change_vnc_password(const char *password)
+ static int change_vnc_password(const char *password)
  {
--    if (vnc_display_password(NULL, password) < 0)
-+	if (vnc_display_password(NULL, password, 0) < 0)
-         qemu_error_new(QERR_SET_PASSWD_FAILED);
- 
+-    if (vnc_display_password(NULL, password) < 0) {
++    if (vnc_display_password(NULL, password, 0) < 0) {
+         qerror_report(QERR_SET_PASSWD_FAILED);
+         return -1;
+     }
+@@ -986,6 +986,17 @@
+     return 0;
  }
  
-+static void change_vnc_ticket(const char *password)
++static int change_vnc_ticket(const char *password)
 +{
-+	if (vnc_display_password(NULL, password, 1) < 0)
-+        qemu_error_new(QERR_SET_PASSWD_FAILED);
++    if (vnc_display_password(NULL, password, 1) < 0) {
++	qerror_report(QERR_SET_PASSWD_FAILED);
++	return -1;
++    }
++
++    return 0;
 +}
 +
++
  static void change_vnc_password_cb(Monitor *mon, const char *password,
                                     void *opaque)
  {
-@@ -966,12 +972,18 @@
- static void do_change_vnc(Monitor *mon, const char *target, const char *arg)
+@@ -996,12 +1007,16 @@
+ static int do_change_vnc(Monitor *mon, const char *target, const char *arg)
  {
      if (strcmp(target, "passwd") == 0 ||
 -        strcmp(target, "password") == 0) {
@@ -108,16 +116,15 @@
              char password[9];
              strncpy(password, arg, sizeof(password));
              password[sizeof(password) - 1] = '\0';
-             change_vnc_password(password);
-+ 	    if (strcmp(target, "ticket") == 0)
-+ 	      change_vnc_ticket(password);
-+ 	    else
-+ 	      change_vnc_password(password);
-+
+-            return change_vnc_password(password);
++	    if (strcmp(target, "ticket") == 0)
++		return change_vnc_ticket(password);
++	    else
++		return change_vnc_password(password);
          } else {
-             monitor_read_password(mon, change_vnc_password_cb, NULL);
+             return monitor_read_password(mon, change_vnc_password_cb, NULL);
          }
-@@ -3360,11 +3372,11 @@
+@@ -3324,11 +3339,11 @@
  static int is_valid_option(const char *c, const char *typestr)
  {
      char option[3];
@@ -131,7 +138,7 @@
      typestr = strstr(typestr, option);
      return (typestr != NULL);
  }
-@@ -3586,7 +3598,7 @@
+@@ -3640,7 +3655,7 @@
                      p++;
                      if(c != *p) {
                          if(!is_valid_option(p, typestr)) {

Modified: pve-qemu-kvm/pve2/debian/rules
===================================================================
--- pve-qemu-kvm/pve2/debian/rules	2011-01-13 13:18:54 UTC (rev 5384)
+++ pve-qemu-kvm/pve2/debian/rules	2011-01-17 05:40:08 UTC (rev 5385)
@@ -33,9 +33,9 @@
 config.status: configure
 	dh_testdir
 	# Add here commands to configure the package.
-	./configure --prefix=/usr --with-kvm-trace --disable-xen
+	./configure --prefix=/usr --datadir=/usr/share/kvm --docdir=/usr/share/doc/pve-qemu-kvm --sysconfdir=/etc --disable-xen --disable-blobs
 
-	cd kvm/user/ && ./configure --prefix=/usr
+	cd kvm/test && ./configure --prefix=/usr
 
 build: patch build-stamp
 
@@ -43,9 +43,9 @@
 	dh_testdir
 
 	# Add here commands to compile the package.
-	$(MAKE)
+	$(MAKE) V=1
 	$(MAKE) -C kvm/libkvm
-	$(MAKE) -C kvm/user
+	$(MAKE) -C kvm/test kvmtrace kvmtrace_format
 
 	#docbook-to-man debian/kvm.sgml > kvm.1
 
@@ -81,23 +81,25 @@
 	mv $(destdir)/usr/share/man/man1/qemu.1 $(destdir)/usr/share/man/man1/kvm.1
 
 	# Install the userspace utilities
-	install -m 0755 kvm/kvm_stat kvm/user/kvmtrace kvm/user/kvmtrace_format $(destdir)/usr/bin/
+	install -m 0755 kvm/kvm_stat kvm/test/kvmtrace kvm/test/kvmtrace_format $(destdir)/usr/bin/
 
 	# file `formats' is needed for kvmtrace_format	
-	install -Dp -m0644 kvm/user/formats $(destdir)/usr/share/kvm/formats
+	install -Dp -m0644 kvm/test/formats $(destdir)/usr/share/kvm/formats
 
 	install -D -m 0755 $(CURDIR)/debian/kvm-ifup $(destdir)/etc/kvm/kvm-ifup
 	install -D -m 0755 $(CURDIR)/debian/kvm-ifdown $(destdir)/etc/kvm/kvm-ifdown
 
-	# install gPXE bios image
-	rm $(destdir)/usr/share/kvm/pxe-*.bin;
+	# install gPXE bios images
 	install -m0644 debian/roms/*.bin $(destdir)/usr/share/kvm
 
-	# rm ppc files
-	rm $(destdir)/usr/share/kvm/*.dtb
-	# rm openbios ppc and sparc
-	rm $(destdir)/usr/share/kvm/openbios-*
+	for f in bios vgabios vgabios-cirrus; do \
+		install -m 0644 pc-bios/$$f.bin $(destdir)/usr/share/kvm/$$f.bin; \
+	done
 
+	for f in linuxboot extboot multiboot vapic; do \
+		install -m 0644 pc-bios/optionrom/$$f.bin $(destdir)/usr/share/kvm/$$f.bin; \
+	done
+
 	# Remove things we don't package at all, would be a "kvm-dev" package
 	rm -Rf $(destdir)/usr/include/linux/
 	rm -Rf $(destdir)/usr/include



More information about the pve-devel mailing list