[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