File keymap.patch of Package libvirt-cim
# HG changeset patch
# User Dan Smith <danms@us.ibm.com>
# Date 1225900807 28800
# Node ID 20af5ae5b01c308d2cfab62899b2dbcb8d186567
# Parent 29c875cab8b808655c04d2f971c0d6c9a9f03dbd
Store and preserve keymap attribute for graphics device
This prevents us from discarding the keymap setting when we redefine a domain.
Signed-off-by: Dan Smith <danms@us.ibm.com>
Index: libvirt-cim-0.5.2/libxkutil/device_parsing.c
===================================================================
--- libvirt-cim-0.5.2.orig/libxkutil/device_parsing.c
+++ libvirt-cim-0.5.2/libxkutil/device_parsing.c
@@ -77,6 +77,7 @@ static void cleanup_graphics_device(stru
free(dev->type);
free(dev->port);
free(dev->host);
+ free(dev->keymap);
}
void cleanup_virt_device(struct virt_device *dev)
@@ -447,6 +448,7 @@ static int parse_graphics_device(xmlNode
gdev->type = get_attr_value(node, "type");
gdev->port = get_attr_value(node, "port");
gdev->host = get_attr_value(node, "listen");
+ gdev->keymap = get_attr_value(node, "keymap");
if ((gdev->type == NULL) || (gdev->port == NULL))
goto err;
@@ -636,6 +638,7 @@ struct virt_device *virt_device_dup(stru
DUP_FIELD(dev, _dev, dev.graphics.type);
DUP_FIELD(dev, _dev, dev.graphics.port);
DUP_FIELD(dev, _dev, dev.graphics.host);
+ DUP_FIELD(dev, _dev, dev.graphics.keymap);
}
return dev;
Index: libvirt-cim-0.5.2/libxkutil/device_parsing.h
===================================================================
--- libvirt-cim-0.5.2.orig/libxkutil/device_parsing.h
+++ libvirt-cim-0.5.2/libxkutil/device_parsing.h
@@ -66,6 +66,7 @@ struct graphics_device {
char *type;
char *port;
char *host;
+ char *keymap;
};
struct virt_device {
Index: libvirt-cim-0.5.2/libxkutil/xmlgen.c
===================================================================
--- libvirt-cim-0.5.2.orig/libxkutil/xmlgen.c
+++ libvirt-cim-0.5.2/libxkutil/xmlgen.c
@@ -351,9 +351,12 @@ static bool graphics_to_xml(char **xml,
struct graphics_device *graphics = &dev->dev.graphics;
ret = asprintf(&_xml,
- "<graphics type='%s' port='%s'/>\n",
+ "<graphics type='%s' port='%s' "
+ "listen='%s' keymap='%s'/>\n",
graphics->type,
- graphics->port);
+ graphics->port,
+ graphics->host != NULL ? graphics->host : "127.0.0.1",
+ graphics->keymap != NULL ? graphics->keymap : "en-us");
if (ret == -1)
return false;
else