--- virt-manager-0.5.3.orig/src/graphWidgets/pysparklinemodule.defs +++ virt-manager-0.5.3/src/graphWidgets/pysparklinemodule.defs @@ -0,0 +1,48 @@ +;; -*- scheme -*- +; object definitions ... +(define-object CellRendererSparkline + (in-module "Gtk") + (parent "GtkCellRenderer") + (c-name "GtkCellRendererSparkline") + (gtype-id "GTK_TYPE_CELL_RENDERER_SPARKLINE") +) + +(define-object Sparkline + (in-module "Gtk") + (parent "GtkDrawingArea") + (c-name "GtkSparkline") + (gtype-id "GTK_TYPE_SPARKLINE") +) + +;; Enumerations and flags ... + + +;; From sparkline.h + +(define-function gtk_sparkline_get_type + (c-name "gtk_sparkline_get_type") + (return-type "GType") +) + +(define-function gtk_sparkline_new + (c-name "gtk_sparkline_new") + (is-constructor-of "GtkSparkline") + (return-type "GtkWidget*") +) + + + +;; From cellrenderersparkline.h + +(define-function gtk_cell_renderer_sparkline_get_type + (c-name "gtk_cell_renderer_sparkline_get_type") + (return-type "GType") +) + +(define-function gtk_cell_renderer_sparkline_new + (c-name "gtk_cell_renderer_sparkline_new") + (is-constructor-of "GtkCellRendererSparkline") + (return-type "GtkCellRenderer*") +) + + --- virt-manager-0.5.3.orig/help/virt-manager/C/virt-manager-C.omf.out +++ virt-manager-0.5.3/help/virt-manager/C/virt-manager-C.omf.out @@ -0,0 +1,27 @@ + + + + + hbrock@redhat.com (Hugh Brock) + + + Virtual Machine Manager Manual + + + 2007-03-01 + + + + + This is the manual for the Virtual Machine Manager application. + + + manual + + + + + + + + --- virt-manager-0.5.3.orig/debian/patches/gconf-dir.diff +++ virt-manager-0.5.3/debian/patches/gconf-dir.diff @@ -0,0 +1,26 @@ +Index: virt-manager-0.5.3/src/Makefile.am +=================================================================== +--- virt-manager-0.5.3.orig/src/Makefile.am 2008-01-11 02:17:51.000000000 +0100 ++++ virt-manager-0.5.3/src/Makefile.am 2008-01-11 10:47:48.457535266 +0100 +@@ -22,7 +22,7 @@ + dbus_SOURCES = $(PACKAGE).service.in + dbus_DATA = $(PACKAGE).service + +-schemadir = $(sysconfdir)/gconf/schemas ++schemadir = $(datadir)/gconf/schemas + schema_SOURCES = $(PACKAGE).schemas.in + schema_DATA = $(PACKAGE).schemas + +Index: virt-manager-0.5.3/src/Makefile.in +=================================================================== +--- virt-manager-0.5.3.orig/src/Makefile.in 2008-01-11 10:47:58.337544046 +0100 ++++ virt-manager-0.5.3/src/Makefile.in 2008-01-11 10:48:22.429533883 +0100 +@@ -252,7 +252,7 @@ + dbusdir = $(datadir)/dbus-1/services + dbus_SOURCES = $(PACKAGE).service.in + dbus_DATA = $(PACKAGE).service +-schemadir = $(sysconfdir)/gconf/schemas ++schemadir = $(datadir)/gconf/schemas + schema_SOURCES = $(PACKAGE).schemas.in + schema_DATA = $(PACKAGE).schemas + CLEANFILES = $(bin_SCRIPTS) $(desktop_DATA) $(dbus_DATA) $(python_DATA) $(libexec_SCRIPTS) $(schema_DATA) $(PACKAGE).desktop.in --- virt-manager-0.5.3.orig/debian/patches/ssh_tunnel_username.patch +++ virt-manager-0.5.3/debian/patches/ssh_tunnel_username.patch @@ -0,0 +1,98 @@ +Index: virt-manager-0.5.3/src/virtManager/console.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/console.py 2008-01-15 14:01:00.588730411 +0100 ++++ virt-manager-0.5.3/src/virtManager/console.py 2008-01-15 14:13:12.333230924 +0100 +@@ -395,7 +395,7 @@ + finally: + gtk.gdk.threads_leave() + +- def open_tunnel(self, server, vncaddr ,vncport): ++ def open_tunnel(self, server, vncaddr, vncport, username): + if self.vncTunnel is not None: + return + +@@ -409,7 +409,11 @@ + os.close(1) + os.dup(fds[1].fileno()) + os.dup(fds[1].fileno()) +- os.execlp("ssh", "ssh", "-p", "22", "-l", "root", server, "nc", vncaddr, str(vncport)) ++ argv = ["ssh", "ssh", "-p", "22"] ++ if username: ++ argv += ['-l', username] ++ argv += [ server, "nc", vncaddr, str(vncport) ] ++ os.execlp(*argv) + os._exit(1) + else: + fds[1].close() +@@ -435,14 +439,18 @@ + + logging.debug("Trying console login") + password = self.window.get_widget("console-auth-password").get_text() +- protocol, host, port, trans = self.vm.get_graphics_console() ++ protocol, host, port, trans, username = self.vm.get_graphics_console() + + if protocol is None: + logging.debug("No graphics configured in guest") + self.activate_unavailable_page(_("Console not configured for guest")) + return + +- uri = str(protocol) + "://" + str(host) + ":" + str(port) ++ uri = str(protocol) + "://" ++ if username: ++ uri = uri + str(username) + '@' ++ uri = uri + str(host) + ":" + str(port) ++ + logging.debug("Graphics console configured at " + uri) + + if protocol != "vnc": +@@ -459,7 +467,7 @@ + logging.debug("Starting connect process for %s %s" % (host, str(port))) + try: + if trans is not None and trans in ("ssh", "ext"): +- fd = self.open_tunnel(host, "127.0.0.1", port) ++ fd = self.open_tunnel(host, "127.0.0.1", port, username) + self.vncViewer.open_fd(fd) + else: + self.vncViewer.open_host(host, str(port)) +Index: virt-manager-0.5.3/src/virtManager/create.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/create.py 2008-01-15 14:01:00.593230803 +0100 ++++ virt-manager-0.5.3/src/virtManager/create.py 2008-01-15 14:12:16.724731987 +0100 +@@ -598,7 +598,7 @@ + if self.config.get_console_popup() == 1: + # user has requested console on new created vms only + vm = self.connection.get_vm(guest.uuid) +- (gtype, host, port, transport) = vm.get_graphics_console() ++ (gtype, host, port, transport, username) = vm.get_graphics_console() + if gtype == "vnc": + self.emit("action-show-console", self.connection.get_uri(), guest.uuid) + else: +Index: virt-manager-0.5.3/src/virtManager/domain.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/domain.py 2008-01-15 14:01:00.593230803 +0100 ++++ virt-manager-0.5.3/src/virtManager/domain.py 2008-01-15 14:12:16.728731128 +0100 +@@ -462,9 +462,9 @@ + # reliably resolve 'localhost' into 127.0.0.1, either returning + # the public IP, or an IPv6 addr. Neither work since QEMU only + # listens on 127.0.0.1 for VNC. +- return [type, "127.0.0.1", port, None] ++ return [type, "127.0.0.1", port, None, None] + else: +- return [type, self.connection.get_hostname(), port, transport] ++ return [type, self.connection.get_hostname(), port, transport, username] + + + def get_disk_devices(self): +Index: virt-manager-0.5.3/src/virtManager/manager.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/manager.py 2008-01-15 14:01:00.593230803 +0100 ++++ virt-manager-0.5.3/src/virtManager/manager.py 2008-01-15 14:12:16.728731128 +0100 +@@ -398,7 +398,7 @@ + logging.debug("VM %s started" % vm.get_name()) + if self.config.get_console_popup() == 2 and not vm.is_management_domain(): + # user has requested consoles on all vms +- (gtype, host, port, transport) = vm.get_graphics_console() ++ (gtype, host, port, transport, username) = vm.get_graphics_console() + if gtype == "vnc": + self.emit("action-show-console", uri, vmuuid) + elif not connect.is_remote(): --- virt-manager-0.5.3.orig/debian/patches/add_usermode_network.patch +++ virt-manager-0.5.3/debian/patches/add_usermode_network.patch @@ -0,0 +1,479 @@ +diff -r 8d3d06e022e9 -r 52478567f837 src/virtManager/addhardware.py +--- a/src/virtManager/addhardware.py Wed Jan 16 00:12:04 2008 +0100 ++++ b/src/virtManager/addhardware.py Wed Jan 16 00:34:02 2008 +0100 +@@ -178,7 +178,7 @@ class vmmAddHardware(gobject.GObject): + self.window.get_widget("non-sparse").set_active(True) + self.window.get_widget("hardware-type").set_active(0) + +- self.window.get_widget("net-type-network").set_active(True) ++ self.window.get_widget("net-type-network").set_active(False) + self.window.get_widget("net-type-device").set_active(False) + self.window.get_widget("mac-address").set_active(False) + self.window.get_widget("create-mac-address").set_text("") +@@ -311,10 +311,12 @@ class vmmAddHardware(gobject.GObject): + net = self.window.get_widget("net-network") + model = net.get_model() + return ["network", model.get_value(net.get_active_iter(), 0)] +- else: ++ elif self.window.get_widget("net-type-device").get_active(): + dev = self.window.get_widget("net-device") + model = dev.get_model() + return ["bridge", model.get_value(dev.get_active_iter(), 0)] ++ else: ++ return ["user"] + + def get_config_macaddr(self): + macaddr = None +@@ -609,9 +611,12 @@ class vmmAddHardware(gobject.GObject): + if self.window.get_widget("net-type-network").get_active(): + self.window.get_widget("net-network").set_sensitive(True) + self.window.get_widget("net-device").set_sensitive(False) ++ elif self.window.get_widget("net-type-device").get_active(): ++ self.window.get_widget("net-network").set_sensitive(False) ++ self.window.get_widget("net-device").set_sensitive(True) + else: + self.window.get_widget("net-network").set_sensitive(False) +- self.window.get_widget("net-device").set_sensitive(True) ++ self.window.get_widget("net-device").set_sensitive(False) + + def change_macaddr_use(self, ignore=None): + if self.window.get_widget("mac-address").get_active(): +diff -r 8d3d06e022e9 -r 52478567f837 src/virtManager/create.py +--- a/src/virtManager/create.py Wed Jan 16 00:12:04 2008 +0100 ++++ b/src/virtManager/create.py Wed Jan 16 00:34:02 2008 +0100 +@@ -272,7 +272,7 @@ class vmmCreate(gobject.GObject): + self.populate_os_type_model() + self.window.get_widget("os-type").set_active(0) + +- self.window.get_widget("net-type-network").set_active(True) ++ self.window.get_widget("net-type-network").set_active(False) + self.window.get_widget("net-type-device").set_active(False) + self.window.get_widget("mac-address").set_active(False) + self.window.get_widget("create-mac-address").set_text("") +@@ -386,10 +386,12 @@ class vmmCreate(gobject.GObject): + net = self.window.get_widget("net-network") + model = net.get_model() + return ["network", model.get_value(net.get_active_iter(), 0)] +- else: ++ elif self.window.get_widget("net-type-device").get_active(): + dev = self.window.get_widget("net-device") + model = dev.get_model() + return ["bridge", model.get_value(dev.get_active_iter(), 0)] ++ else: ++ return ["user"] + + def get_config_macaddr(self): + macaddr = None +@@ -514,6 +516,9 @@ class vmmCreate(gobject.GObject): + + guest = self._guest + guest.hypervisorURI = self.connection.get_uri() ++ ++ if os.getuid() != 0 and not self.connection.is_qemu_system(): ++ self._net = virtinst.VirtualNetworkInterface(macaddr=None, type='user') + + # UUID, append disk and nic + try: +@@ -740,9 +745,12 @@ class vmmCreate(gobject.GObject): + if self.window.get_widget("net-type-network").get_active(): + self.window.get_widget("net-network").set_sensitive(True) + self.window.get_widget("net-device").set_sensitive(False) ++ elif self.window.get_widget("net-type-device").get_active(): ++ self.window.get_widget("net-network").set_sensitive(False) ++ self.window.get_widget("net-device").set_sensitive(True) + else: + self.window.get_widget("net-network").set_sensitive(False) +- self.window.get_widget("net-device").set_sensitive(True) ++ self.window.get_widget("net-device").set_sensitive(False) + + def change_macaddr_use(self, ignore=None): + if self.window.get_widget("mac-address").get_active(): +@@ -923,7 +931,7 @@ class vmmCreate(gobject.GObject): + self._validation_error_box(_("Virtual Network Required"), + _("You must select one of the virtual networks")) + return False +- else: ++ elif self.window.get_widget("net-type-device").get_active(): + if self.window.get_widget("net-device").get_active() == -1: + self._validation_error_box(_("Physical Device Required"), + _("You must select one of the physical devices")) +diff -r 8d3d06e022e9 -r 52478567f837 src/vmm-add-hardware.glade +--- a/src/vmm-add-hardware.glade Wed Jan 16 00:12:04 2008 +0100 ++++ b/src/vmm-add-hardware.glade Wed Jan 16 00:34:02 2008 +0100 +@@ -1165,7 +1165,7 @@ + + + True +- 8 ++ 9 + 2 + False + 6 +@@ -1183,18 +1183,18 @@ + + 1 + 2 +- 4 +- 5 ++ 5 ++ 6 + fill + fill + + + + +- ++ + True + True +- _Virtual network ++ _Usermode network + True + GTK_RELIEF_NORMAL + True +@@ -1214,6 +1214,30 @@ + + + ++ ++ True ++ True ++ _Virtual network ++ True ++ GTK_RELIEF_NORMAL ++ True ++ False ++ False ++ True ++ net-type-user ++ ++ ++ ++ 0 ++ 2 ++ 1 ++ 2 ++ fill ++ fill ++ ++ ++ ++ + + True + True +@@ -1224,14 +1248,14 @@ + False + False + True +- net-type-network ++ net-type-user + + + + 0 + 2 +- 3 +- 4 ++ 4 ++ 5 + fill + fill + +@@ -1302,8 +1326,8 @@ + + 0 + 2 +- 2 +- 3 ++ 3 ++ 4 + fill + + +@@ -1373,8 +1397,8 @@ + + 0 + 2 +- 5 +- 6 ++ 6 ++ 7 + fill + + +@@ -1391,8 +1415,8 @@ + + 1 + 2 +- 1 +- 2 ++ 2 ++ 3 + fill + + +@@ -1441,8 +1465,8 @@ + + 0 + 1 +- 1 +- 2 ++ 2 ++ 3 + fill + + +@@ -1492,8 +1516,8 @@ + + 0 + 1 +- 4 +- 5 ++ 5 ++ 6 + fill + + +@@ -1515,8 +1539,8 @@ + + 0 + 2 +- 6 +- 7 ++ 7 ++ 8 + fill + + +@@ -1544,8 +1568,8 @@ + + 0 + 1 +- 7 +- 8 ++ 8 ++ 9 + fill + + +@@ -1569,8 +1593,8 @@ + + 1 + 2 +- 7 +- 8 ++ 8 ++ 9 + + + +diff -r 8d3d06e022e9 -r 52478567f837 src/vmm-create.glade +--- a/src/vmm-create.glade Wed Jan 16 00:12:04 2008 +0100 ++++ b/src/vmm-create.glade Wed Jan 16 00:34:02 2008 +0100 +@@ -3287,7 +3287,7 @@ mipsel + + + True +- 8 ++ 9 + 2 + False + 6 +@@ -3305,8 +3305,31 @@ mipsel + + 1 + 2 +- 4 +- 5 ++ 5 ++ 6 ++ fill ++ fill ++ ++ ++ ++ ++ ++ True ++ True ++ _Usermode network ++ True ++ GTK_RELIEF_NORMAL ++ True ++ True ++ False ++ True ++ ++ ++ ++ 0 ++ 2 ++ 0 ++ 1 + fill + fill + +@@ -3320,16 +3343,17 @@ mipsel + True + GTK_RELIEF_NORMAL + True +- True +- False +- True ++ False ++ False ++ True ++ net-type-user + + + + 0 + 2 +- 0 +- 1 ++ 1 ++ 2 + fill + fill + +@@ -3346,14 +3370,14 @@ mipsel + False + False + True +- net-type-network ++ net-type-user + + + + 0 + 2 +- 3 +- 4 ++ 4 ++ 5 + fill + fill + +@@ -3424,8 +3448,8 @@ mipsel + + 0 + 2 +- 2 +- 3 ++ 3 ++ 4 + fill + + +@@ -3495,8 +3519,8 @@ mipsel + + 0 + 2 +- 5 +- 6 ++ 6 ++ 7 + fill + + +@@ -3513,8 +3537,8 @@ mipsel + + 1 + 2 +- 1 +- 2 ++ 2 ++ 3 + fill + + +@@ -3563,8 +3587,8 @@ mipsel + + 0 + 1 +- 1 +- 2 ++ 2 ++ 3 + fill + + +@@ -3614,8 +3638,8 @@ mipsel + + 0 + 1 +- 4 +- 5 ++ 5 ++ 6 + fill + + +@@ -3643,31 +3667,31 @@ mipsel + + 0 + 1 ++ 8 ++ 9 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ True ++ Set _fixed MAC address for your virtual system? ++ True ++ GTK_RELIEF_NORMAL ++ True ++ False ++ False ++ True ++ ++ ++ ++ 0 ++ 2 + 7 + 8 +- fill +- +- +- +- +- +- +- True +- True +- Set _fixed MAC address for your virtual system? +- True +- GTK_RELIEF_NORMAL +- True +- False +- False +- True +- +- +- +- 0 +- 2 +- 6 +- 7 + fill + + +@@ -3691,8 +3715,8 @@ mipsel + + 1 + 2 +- 7 +- 8 ++ 8 ++ 9 + + + --- virt-manager-0.5.3.orig/debian/patches/fix_heuristic.patch +++ virt-manager-0.5.3/debian/patches/fix_heuristic.patch @@ -0,0 +1,148 @@ +Index: virt-manager-0.5.3/src/virtManager/addhardware.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/addhardware.py 2008-01-16 09:59:33.756731313 +0100 ++++ virt-manager-0.5.3/src/virtManager/addhardware.py 2008-01-16 09:59:36.396751128 +0100 +@@ -110,7 +110,7 @@ + name = "page" + str(num) + "-title" + self.window.get_widget(name).modify_bg(gtk.STATE_NORMAL,black) + +- if os.getuid() != 0: ++ if os.getuid() != 0 and not self.vm.get_connection().is_qemu_system(): + self.window.get_widget("storage-partition").set_sensitive(False) + + # set up the lists for the networks +@@ -168,7 +168,7 @@ + self.change_network_type() + self.change_macaddr_use() + self.change_port_auto() +- if os.getuid() == 0: ++ if os.getuid() == 0 or self.vm.get_connection().is_qemu_system(): + self.window.get_widget("storage-partition").set_active(True) + else: + self.window.get_widget("storage-file-backed").set_active(True) +@@ -213,7 +213,8 @@ + # User mode networking only allows a single card for now + if (self.vm.get_connection().get_type().lower() == "qemu" and \ + os.getuid() == 0) or \ +- self.vm.get_connection().get_type().lower() == "xen": ++ self.vm.get_connection().get_type().lower() == "xen" or \ ++ self.vm.get_connection().is_qemu_system(): + model.append(["Network card", gtk.STOCK_NETWORK, PAGE_NETWORK]) + + # Can only customize HVM guests, no Xen PV +@@ -303,7 +304,7 @@ + return pw.get_text() + + def get_config_network(self): +- if os.getuid() != 0: ++ if os.getuid() != 0 and not self.vm.get_connection().is_qemu_system(): + return ["user"] + + if self.window.get_widget("net-type-network").get_active(): +Index: virt-manager-0.5.3/src/virtManager/connect.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/connect.py 2008-01-16 09:59:33.764732307 +0100 ++++ virt-manager-0.5.3/src/virtManager/connect.py 2008-01-16 09:59:36.396751128 +0100 +@@ -101,7 +101,7 @@ + elif conn == CONN_TLS: + uri = "xen+tls://" + host + "/" + elif conn == CONN_SSH: +- uri = "xen+ssh://root@" + host + "/" ++ uri = "xen+ssh://" + host + "/" + else: + if conn == CONN_LOCAL: + if os.getuid() == 0: +@@ -111,7 +111,7 @@ + elif conn == CONN_TLS: + uri = "qemu+tls://" + host + "/system" + elif conn == CONN_SSH: +- uri = "qemu+ssh://root@" + host + "/system" ++ uri = "qemu+ssh://" + host + "/system" + + logging.debug("Connection to open is %s" % uri) + self.close() +Index: virt-manager-0.5.3/src/virtManager/connection.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/connection.py 2008-01-16 09:59:33.768730567 +0100 ++++ virt-manager-0.5.3/src/virtManager/connection.py 2008-01-16 10:03:05.257230167 +0100 +@@ -772,5 +772,18 @@ + else: + return _("Unknown") + ++ # Hideously out of place, but very convenient. ++ # ++ # This method is meant to be used in conjunction with the os.getuid() == 0 ++ # checks that are scattered all about the virt-manager code. If you're connected ++ # to qemu://(possibly remotely)/system, you have the same privileges as root, ++ # and the UI should reflect this. ++ # The method is specific to Ubuntu and should go away as soon as upstream finishes ++ # their work to replace all the os.getuid() checks with proper capabilities checks. ++ def is_qemu_system(self): ++ if self.get_type().lower() == "qemu": ++ if uri_split(self.get_uri())[3] == '/system': ++ return True ++ + gobject.type_register(vmmConnection) + +Index: virt-manager-0.5.3/src/virtManager/create.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/create.py 2008-01-16 09:59:33.776730911 +0100 ++++ virt-manager-0.5.3/src/virtManager/create.py 2008-01-16 09:59:36.400761497 +0100 +@@ -145,7 +145,7 @@ + logging.error("Unable to create optical-helper widget: '%s'", e) + self.window.get_widget("media-physical").set_sensitive(False) + +- if os.getuid() != 0: ++ if os.getuid() != 0 and not self.connection.is_qemu_system(): + self.window.get_widget("media-physical").set_sensitive(False) + self.window.get_widget("storage-partition").set_sensitive(False) + +@@ -251,7 +251,7 @@ + self.window.get_widget("create-vm-name").set_text("") + self.window.get_widget("media-iso-image").set_active(True) + self.window.get_widget("fv-iso-location").set_text("") +- if os.getuid() == 0: ++ if os.getuid() == 0 or self.connection.is_qemu_system(): + self.window.get_widget("storage-partition").set_active(True) + else: + self.window.get_widget("storage-file-backed").set_active(True) +@@ -299,7 +299,7 @@ + notebook.set_current_page(PAGE_PVINST) + elif (notebook.get_current_page() == PAGE_FVINST and self.get_config_method() == VM_FULLY_VIRT): + notebook.set_current_page(PAGE_DISK) +- elif (notebook.get_current_page() == PAGE_DISK and os.getuid() != 0): ++ elif (notebook.get_current_page() == PAGE_DISK and os.getuid() != 0 and not self.connection.is_qemu_system()): + notebook.set_current_page(PAGE_CPUMEM) + else: + notebook.next_page() +@@ -313,7 +313,7 @@ + notebook.set_current_page(PAGE_TYPE) + elif notebook.get_current_page() == PAGE_DISK and self.get_config_method() == VM_FULLY_VIRT: + notebook.set_current_page(PAGE_FVINST) +- elif notebook.get_current_page() == PAGE_CPUMEM and os.getuid() != 0: ++ elif notebook.get_current_page() == PAGE_CPUMEM and os.getuid() != 0 and not self.connection.is_qemu_system(): + notebook.set_current_page(PAGE_DISK) + else: + notebook.prev_page() +@@ -379,7 +379,7 @@ + return self.window.get_widget("kernel-params").get_text() + + def get_config_network(self): +- if os.getuid() != 0: ++ if os.getuid() != 0 and not self.connection.is_qemu_system(): + return ["user"] + + if self.window.get_widget("net-type-network").get_active(): +Index: virt-manager-0.5.3/src/virtManager/host.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/host.py 2008-01-16 09:59:33.820797600 +0100 ++++ virt-manager-0.5.3/src/virtManager/host.py 2008-01-16 09:59:36.400761497 +0100 +@@ -81,7 +81,7 @@ + self.conn.connect("net-removed", self.repopulate_networks) + + # XXX not technically correct once we enable remote management +- if os.getuid() != 0 and not self.conn.is_remote(): ++ if os.getuid() != 0 and not self.conn.is_remote() and not self.conn.is_qemu_system(): + self.window.get_widget("net-add").set_sensitive(False) + + --- virt-manager-0.5.3.orig/debian/patches/fix_non_privileged_network.patch +++ virt-manager-0.5.3/debian/patches/fix_non_privileged_network.patch @@ -0,0 +1,16 @@ +Index: virt-manager-0.5.3/src/virtManager/create.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/create.py 2008-01-18 18:51:15.568119904 +0100 ++++ virt-manager-0.5.3/src/virtManager/create.py 2008-01-18 18:52:52.371609712 +0100 +@@ -515,6 +515,11 @@ + guest = self._guest + guest.hypervisorURI = self.connection.get_uri() + ++ # If this is an unprivileged used he hasn't been asked, so always just ++ # set up usermode networking. ++ if os.getuid() != 0 and not self.connection.is_qemu_system(): ++ self._net = virtinst.VirtualNetworkInterface(macaddr=None, type='user') ++ + # UUID, append disk and nic + try: + guest.uuid = virtinst.util.uuidToString(virtinst.util.randomUUID()) --- virt-manager-0.5.3.orig/debian/patches/fix_add_bridged_net.patch +++ virt-manager-0.5.3/debian/patches/fix_add_bridged_net.patch @@ -0,0 +1,32 @@ +Index: virt-manager-0.5.3/src/virtManager/addhardware.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/addhardware.py 2008-01-18 18:53:36.016110288 +0100 ++++ virt-manager-0.5.3/src/virtManager/addhardware.py 2008-01-18 18:55:03.564112433 +0100 +@@ -122,12 +122,12 @@ + network_list.add_attribute(text, 'text', 1) + + device_list = self.window.get_widget("net-device") +- device_model = gtk.ListStore(str, bool) ++ device_model = gtk.ListStore(str, str, bool) + device_list.set_model(device_model) + text = gtk.CellRendererText() + device_list.pack_start(text, True) +- device_list.add_attribute(text, 'text', 0) +- device_list.add_attribute(text, 'sensitive', 1) ++ device_list.add_attribute(text, 'text', 1) ++ device_list.add_attribute(text, 'sensitive', 2) + + target_list = self.window.get_widget("target-device") + target_model = gtk.ListStore(str, int, str, str, str) +@@ -821,9 +821,9 @@ + net = self.vm.get_connection().get_net_device(name) + if net.is_shared(): + hasShared = True +- model.append(["%s (%s %s)" % (net.get_name(), _("Bridge"), net.get_bridge()), True]) ++ model.append([net.get_bridge(), "%s (%s %s)" % (net.get_name(), _("Bridge"), net.get_bridge()), True]) + else: +- model.append(["%s (%s)" % (net.get_name(), _("Not bridged")), False]) ++ model.append([net.get_bridge(), "%s (%s)" % (net.get_name(), _("Not bridged")), False]) + return hasShared + + def populate_target_device_model(self, model): --- virt-manager-0.5.3.orig/debian/patches/allow_chaning_boot_device.patch +++ virt-manager-0.5.3/debian/patches/allow_chaning_boot_device.patch @@ -0,0 +1,5994 @@ +# HG changeset patch +# User "Cole Robinson " +# Date Thu Mar 06 16:43:46 2008 -0500 +# Node ID 4770f435ab01c3413bf36fc823395b1bae6fa400 +# parent: 0b213f9406fd03713293f74806a38427086e4d53 +Add autostart and boot device selection support. + +Index: virt-manager-0.5.3/src/virtManager/details.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/details.py 2008-01-11 02:17:51.000000000 +0100 ++++ virt-manager-0.5.3/src/virtManager/details.py 2008-03-07 08:51:57.048335363 +0100 +@@ -49,6 +49,7 @@ + HW_LIST_TYPE_NIC = 3 + HW_LIST_TYPE_INPUT = 4 + HW_LIST_TYPE_GRAPHICS = 5 ++HW_LIST_TYPE_BOOT = 6 + + class vmmDetails(gobject.GObject): + __gsignals__ = { +@@ -134,6 +135,9 @@ + "on_config_memory_changed": self.config_memory_changed, + "on_config_maxmem_changed": self.config_maxmem_changed, + "on_config_memory_apply_clicked": self.config_memory_apply, ++ "on_config_boot_device_changed": self.config_boot_options_changed, ++ "on_config_autostart_changed": self.config_boot_options_changed, ++ "on_config_boot_apply_clicked": self.config_boot_options_apply, + "on_details_help_activate": self.show_help, + + "on_config_cdrom_connect_clicked": self.toggle_cdrom, +@@ -216,6 +220,9 @@ + self.refresh_input_page() + elif pagetype == HW_LIST_TYPE_GRAPHICS: + self.refresh_graphics_page() ++ elif pagetype == HW_LIST_TYPE_BOOT: ++ self.refresh_boot_page() ++ self.window.get_widget("config-boot-options-apply").set_sensitive(False) + else: + pagenum = -1 + +@@ -495,6 +502,40 @@ + else: + self.window.get_widget("config-input-remove").set_sensitive(True) + ++ def refresh_boot_page(self): ++ # Refresh autostart ++ try: ++ autoval = self.vm.get_autostart() ++ self.window.get_widget("config-autostart").set_active(autoval) ++ self.window.get_widget("config-autostart").set_sensitive(True) ++ except libvirt.libvirtError, e: ++ # Autostart isn't supported ++ self.window.get_widget("config-autostart").set_active(False) ++ self.window.get_widget("config-autostart").set_sensitive(False) ++ ++ # Refresh Boot Device list and correct selection ++ boot_combo = self.window.get_widget("config-boot-device") ++ if not self.vm.is_hvm(): ++ # Boot dev selection not supported for PV guest ++ boot_combo.set_sensitive(False) ++ boot_combo.set_active(-1) ++ return ++ ++ self.repopulate_boot_list() ++ bootdev = self.vm.get_boot_device() ++ boot_combo = self.window.get_widget("config-boot-device") ++ boot_model = boot_combo.get_model() ++ for i in range(0, len(boot_model)): ++ if bootdev == boot_model[i][2]: ++ boot_combo.set_active(i) ++ break ++ ++ if boot_model[0][2] == None: ++ # If no boot devices, select the 'No Device' entry ++ boot_combo.set_active(0) ++ ++ # TODO: if nothing selected, what to select? auto change device? ++ + def config_vcpus_changed(self, src): + self.window.get_widget("config-vcpus-apply").set_sensitive(True) + +@@ -527,6 +568,27 @@ + + self.window.get_widget("config-memory-apply").set_sensitive(False) + ++ def config_boot_options_changed(self, src): ++ self.window.get_widget("config-boot-options-apply").set_sensitive(True) ++ ++ def config_boot_options_apply(self, src): ++ boot = self.window.get_widget("config-boot-device") ++ auto = self.window.get_widget("config-autostart") ++ if auto.get_property("sensitive"): ++ try: ++ self.vm.set_autostart(auto.get_active()) ++ except Exception, e: ++ self._err_dialog(_("Error changing autostart value: %s") % \ ++ str(e), "".join(traceback.format_exc())) ++ ++ if boot.get_property("sensitive"): ++ try: ++ self.vm.set_boot_device(boot.get_model()[boot.get_active()][2]) ++ self.window.get_widget("config-boot-options-apply").set_sensitive(False) ++ except Exception, e: ++ self._err_dialog(_("Error changing boot device: %s" % str(e)), ++ "".join(traceback.format_exc())) ++ return + + def remove_disk(self, src): + vmlist = self.window.get_widget("hw-list") +@@ -597,14 +659,30 @@ + hwCol.add_attribute(hw_img, 'stock-size', HW_LIST_COL_STOCK_SIZE) + hwCol.add_attribute(hw_img, 'pixbuf', HW_LIST_COL_PIXBUF) + self.window.get_widget("hw-list").append_column(hwCol) ++ self.prepare_boot_list() + + self.populate_hw_list() ++ self.repopulate_boot_list() ++ ++ def prepare_boot_list(self): ++ boot_list = self.window.get_widget("config-boot-device") ++ # model = [ display name, icon name, boot type (hd, fd, etc) ] ++ boot_list_model = gtk.ListStore(str, str, str) ++ boot_list.set_model(boot_list_model) ++ ++ icon = gtk.CellRendererPixbuf() ++ boot_list.pack_start(icon, False) ++ boot_list.add_attribute(icon, 'stock-id', 1) ++ text = gtk.CellRendererText() ++ boot_list.pack_start(text, True) ++ boot_list.add_attribute(text, 'text', 0) + + def populate_hw_list(self): + hw_list_model = self.window.get_widget("hw-list").get_model() + hw_list_model.clear() + hw_list_model.append(["Processor", None, 0, self.pixbuf_processor, HW_LIST_TYPE_CPU, []]) + hw_list_model.append(["Memory", None, 0, self.pixbuf_memory, HW_LIST_TYPE_MEMORY, []]) ++ hw_list_model.append(["Boot Options", None, 0, self.pixbuf_memory, HW_LIST_TYPE_BOOT, []]) + self.repopulate_hw_list() + + def repopulate_hw_list(self): +@@ -725,6 +803,36 @@ + # Now actually remove it + hw_list_model.remove(iter) + ++ def repopulate_boot_list(self): ++ hw_list_model = self.window.get_widget("hw-list").get_model() ++ boot_combo = self.window.get_widget("config-boot-device") ++ boot_model = boot_combo.get_model() ++ boot_model.clear() ++ found_dev = {} ++ for row in hw_list_model: ++ if row[4] == HW_LIST_TYPE_DISK: ++ disk = row[5] ++ if disk[2] == virtinst.VirtualDisk.DEVICE_DISK and not \ ++ found_dev.get(virtinst.VirtualDisk.DEVICE_DISK, False): ++ boot_model.append(["Hard Disk", gtk.STOCK_HARDDISK, "hd"]) ++ found_dev[virtinst.VirtualDisk.DEVICE_DISK] = True ++ elif disk[2] == virtinst.VirtualDisk.DEVICE_CDROM and not \ ++ found_dev.get(virtinst.VirtualDisk.DEVICE_CDROM, False): ++ boot_model.append(["CDROM", gtk.STOCK_CDROM, "cdrom"]) ++ found_dev[virtinst.VirtualDisk.DEVICE_CDROM] = True ++ elif disk[2] == virtinst.VirtualDisk.DEVICE_FLOPPY and not \ ++ found_dev.get(virtinst.VirtualDisk.DEVICE_FLOPPY, False): ++ boot_model.append(["Floppy", gtk.STOCK_FLOPPY, "fd"]) ++ found_dev[virtinst.VirtualDisk.DEVICE_FLOPPY] = True ++ elif row[4] == HW_LIST_TYPE_NIC and not \ ++ found_dev.get(HW_LIST_TYPE_NIC, False): ++ boot_model.append(["Network (PXE)", gtk.STOCK_NETWORK, "network"]) ++ found_dev[HW_LIST_TYPE_NIC] = True ++ ++ if len(boot_model) <= 0: ++ boot_model.append([_("No Boot Device"), None, None]) ++ ++ boot_combo.set_model(boot_model) + + def add_hardware(self, src): + if self.addhw is None: +Index: virt-manager-0.5.3/src/virtManager/domain.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/domain.py 2008-03-07 08:51:54.627420496 +0100 ++++ virt-manager-0.5.3/src/virtManager/domain.py 2008-03-07 08:51:57.048335363 +0100 +@@ -832,4 +832,64 @@ + memory = int(memory) + self.vm.setMaxMemory(memory) + ++ def get_autostart(self): ++ return self.vm.autostart() ++ ++ def set_autostart(self, val): ++ if self.get_autostart() != val: ++ self.vm.setAutostart(val) ++ ++ def get_boot_device(self): ++ xml = self.get_xml() ++ doc = None ++ try: ++ doc = libxml2.parseDoc(xml) ++ except: ++ return [] ++ ctx = doc.xpathNewContext() ++ graphics = [] ++ dev = None ++ try: ++ ret = ctx.xpathEval("/domain/os/boot[1]") ++ for node in ret: ++ dev = node.prop("dev") ++ finally: ++ if ctx != None: ++ ctx.xpathFreeContext() ++ if doc != None: ++ doc.freeDoc() ++ return dev ++ ++ def set_boot_device(self, boot_type): ++ logging.debug("Setting boot device to type: %s" % boot_type) ++ xml = self.get_xml() ++ doc = None ++ try: ++ doc = libxml2.parseDoc(xml) ++ except: ++ return [] ++ ctx = doc.xpathNewContext() ++ graphics = [] ++ dev = None ++ try: ++ ret = ctx.xpathEval("/domain/os/boot[1]") ++ if len(ret) > 0: ++ ret[0].unlinkNode() ++ ret[0].freeNode() ++ emptyxml=doc.serialize() ++ index = emptyxml.find("") ++ newxml = emptyxml[0:index] + \ ++ "\n" + \ ++ emptyxml[index:] ++ logging.debug("New boot device, redefining with: " + newxml) ++ self.get_connection().define_domain(newxml) ++ finally: ++ if ctx != None: ++ ctx.xpathFreeContext() ++ if doc != None: ++ doc.freeDoc() ++ ++ # Invalidate cached xml ++ self.xml = None ++ + gobject.type_register(vmmDomain) +Index: virt-manager-0.5.3/src/vmm-details.glade +=================================================================== +--- virt-manager-0.5.3.orig/src/vmm-details.glade 2008-01-11 02:17:51.000000000 +0100 ++++ virt-manager-0.5.3/src/vmm-details.glade 2008-03-07 08:51:57.075960748 +0100 +@@ -1,3506 +1,2240 @@ +- +- +- ++ ++ ++ + +- +- +- True +- Virtual Machine Details +- GTK_WINDOW_TOPLEVEL +- GTK_WIN_POS_NONE +- False +- 700 +- 540 +- True +- False +- True +- False +- False +- GDK_WINDOW_TYPE_HINT_NORMAL +- GDK_GRAVITY_NORTH_WEST +- True +- False +- +- +- +- +- True +- False +- 0 +- +- +- +- True +- GTK_PACK_DIRECTION_LTR +- GTK_PACK_DIRECTION_LTR +- +- +- +- True +- Virtual _Machine +- True +- +- +- +- +- +- +- +- True +- _Run +- True +- +- +- +- +- +- +- True +- _Pause +- True +- False +- +- +- +- +- +- +- True +- S_hutdown +- True +- +- +- +- +- +- +- True +- _Save +- True +- +- +- +- +- +- +- True +- _Destroy +- True +- +- +- +- +- +- +- True +- +- +- +- +- +- True +- gtk-close +- True +- +- +- +- +- +- +- +- +- +- +- True +- _View +- True +- +- +- +- +- +- +- +- True +- _Graphical Console +- True +- +- +- +- +- +- +- True +- _Serial Console +- True +- +- +- +- +- +- +- True +- +- +- +- +- +- True +- Toolbar +- True +- True +- +- +- +- +- +- +- +- +- +- +- True +- _Help +- True +- +- +- +- +- +- +- +- True +- _Contents +- True +- +- +- +- +- +- True +- gtk-help +- 1 +- 0.5 +- 0.5 +- 0 +- 0 +- +- +- +- +- +- +- +- +- +- +- 0 +- False +- False +- +- +- +- +- +- True +- GTK_ORIENTATION_HORIZONTAL +- GTK_TOOLBAR_BOTH +- True +- True +- +- +- +- True +- Run +- True +- gtk-media-play +- True +- True +- False +- +- +- +- False +- True +- +- +- +- +- +- True +- Pause +- True +- gtk-media-pause +- True +- True +- False +- False +- +- +- +- False +- True +- +- +- +- +- +- True +- Shutdown +- True +- True +- True +- False +- +- +- +- False +- True +- +- +- +- +- 0 +- False +- False +- +- +- +- +- +- 6 +- True +- True +- True +- False +- GTK_POS_TOP +- False +- False +- +- +- +- True +- True +- GTK_POLICY_AUTOMATIC +- GTK_POLICY_AUTOMATIC +- GTK_SHADOW_NONE +- GTK_CORNER_TOP_LEFT +- +- +- +- True +- GTK_SHADOW_NONE +- +- +- +- True +- False +- 0 +- +- +- +- 3 +- True +- 0 +- 0.5 +- GTK_SHADOW_NONE +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 0 +- 0 +- 12 +- 0 +- +- +- +- 3 +- True +- 3 +- 2 +- False +- 3 +- 3 +- +- +- +- True +- True +- False +- True +- 0 +- +- True +- • +- False +- +- Name Field +- +- +- +- 1 +- 2 +- 0 +- 1 +- +- +- +- +- +- +- True +- Name: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 1 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- False +- 0 +- +- +- +- True +- gtk-stop +- 4 +- 0.5 +- 0.5 +- 0 +- 0 +- +- +- 0 +- False +- True +- +- +- +- +- +- True +- Shut down +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_START +- -1 +- False +- 0 +- +- +- 0 +- True +- True +- +- +- +- +- 1 +- 2 +- 2 +- 3 +- fill +- +- +- +- +- +- True +- Status: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 1 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 2 +- 3 +- fill +- +- +- +- +- +- +- True +- UUID: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 1 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 1 +- 2 +- fill +- +- +- +- +- +- +- True +- True +- False +- True +- 0 +- +- True +- • +- False +- +- UUID Field +- +- +- +- 1 +- 2 +- 1 +- 2 +- +- +- +- +- +- +- +- +- +- +- True +- <b>Basic details</b> +- False +- True +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- label_item +- +- +- +- +- 0 +- False +- True +- +- +- +- +- +- 3 +- True +- 0 +- 0.5 +- GTK_SHADOW_NONE +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 0 +- 0 +- 12 +- 0 +- +- +- +- 3 +- True +- 4 +- 3 +- False +- 3 +- 3 +- +- +- +- True +- CPU usage: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 1 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- 18% +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 2 +- 3 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- 30 MB of 128 MB +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 2 +- 3 +- 1 +- 2 +- fill +- +- +- +- +- +- +- True +- 20 bits/sec +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 2 +- 3 +- 2 +- 3 +- fill +- +- +- +- +- +- +- True +- 80 MB of 1 GB +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 2 +- 3 +- 3 +- 4 +- fill +- +- +- +- +- +- +- True +- Memory usage: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 1 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 1 +- 2 +- fill +- +- +- +- +- +- +- True +- Disk usage: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 1 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 2 +- 3 +- fill +- +- +- +- +- +- +- True +- Network usage: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 1 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 3 +- 4 +- fill +- +- +- +- +- +- +- True +- GTK_PROGRESS_LEFT_TO_RIGHT +- 0.119999997318 +- 0.10000000149 +- PANGO_ELLIPSIZE_NONE +- +- +- 1 +- 2 +- 2 +- 3 +- +- +- +- +- +- +- +- +- +- +- True +- <b>Performance</b> +- False +- True +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- label_item +- +- +- +- +- 0 +- True +- True +- +- +- +- +- +- +- +- +- False +- True +- +- +- +- +- +- True +- Overview +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- tab +- +- +- +- +- +- True +- True +- 200 +- +- +- +- 6 +- True +- False +- 6 +- +- +- +- True +- True +- GTK_POLICY_AUTOMATIC +- GTK_POLICY_AUTOMATIC +- GTK_SHADOW_IN +- GTK_CORNER_TOP_LEFT +- +- +- +- True +- True +- False +- False +- False +- True +- False +- False +- False +- +- +- +- +- 0 +- True +- True +- +- +- +- +- +- True +- True +- gtk-add +- True +- GTK_RELIEF_NORMAL +- True +- +- +- +- 0 +- False +- False +- +- +- +- +- True +- False +- +- +- +- +- +- True +- True +- True +- True +- GTK_POS_TOP +- False +- False +- +- +- +- True +- False +- 0 +- +- +- +- True +- 0 +- 0.5 +- GTK_SHADOW_NONE +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 5 +- 3 +- 12 +- 0 +- +- +- +- True +- False +- 0 +- +- +- +- True +- How many virtual CPUs should be allocated for this machine? +- False +- False +- GTK_JUSTIFY_LEFT +- True +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- False +- False +- +- +- +- +- +- 3 +- True +- 4 +- 2 +- False +- 3 +- 3 +- +- +- +- True +- Total CPUs on host machine: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 3 +- 4 +- fill +- +- +- +- +- +- +- True +- Maximum allocation: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 2 +- 3 +- fill +- +- +- +- +- +- +- True +- 8 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 3 +- 4 +- fill +- +- +- +- +- +- +- True +- Change allocation: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 1 +- 2 +- fill +- +- +- +- +- +- +- True +- 2 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- True +- 1 +- 0 +- True +- GTK_UPDATE_IF_VALID +- False +- False +- 1 1 32 1 2 2 +- +- VCPU Select +- +- +- +- +- 1 +- 2 +- 1 +- 2 +- fill +- +- +- +- +- +- +- True +- Current allocation: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- 8 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 2 +- 3 +- fill +- +- +- +- +- +- 0 +- False +- False +- +- +- +- +- +- +- +- +- +- True +- <b>CPUs</b> +- False +- True +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- label_item +- +- +- +- +- 15 +- False +- False +- +- +- +- +- +- True +- False +- 0 +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 0 +- 0 +- 13 +- 0 +- +- +- +- True +- gtk-info +- 4 +- 0.5 +- 0.5 +- 0 +- 0 +- +- +- +- +- 0 +- False +- False +- +- +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 0 +- 0 +- 3 +- 0 +- +- +- +- True +- <b>Tip:</b> For best performance, the number of virtual CPUs should be less than (or equal to) the number of physical CPUs on the host system. +- False +- True +- GTK_JUSTIFY_LEFT +- True +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- +- +- 0 +- False +- False +- +- +- +- +- 0 +- False +- False +- +- +- +- +- +- 6 +- True +- GTK_BUTTONBOX_END +- 5 +- +- +- +- True +- False +- True +- True +- gtk-apply +- True +- GTK_RELIEF_NORMAL +- True +- +- +- +- +- +- 0 +- False +- False +- GTK_PACK_END +- +- +- +- +- True +- True +- +- +- +- +- +- True +- Processor +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- tab +- +- +- +- +- +- True +- False +- 0 +- +- +- +- True +- 0 +- 0.5 +- GTK_SHADOW_NONE +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 5 +- 3 +- 12 +- 0 +- +- +- +- True +- False +- 0 +- +- +- +- True +- How much memory should be allocated for this machine? +- False +- False +- GTK_JUSTIFY_LEFT +- True +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- False +- False +- +- +- +- +- +- 3 +- True +- 4 +- 2 +- False +- 3 +- 3 +- +- +- +- True +- Total memory on host machine: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 3 +- 4 +- fill +- +- +- +- +- +- +- True +- Maximum allocation: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 2 +- 3 +- fill +- +- +- +- +- +- +- True +- 2 GB +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 3 +- 4 +- fill +- +- +- +- +- +- +- True +- False +- 0 +- +- +- +- True +- True +- 1 +- 0 +- True +- GTK_UPDATE_IF_VALID +- False +- False +- 50 50 32000 5 10 10 +- +- Max Memory Select +- +- +- +- +- 0 +- False +- True +- +- +- +- +- +- True +- MB +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- False +- False +- +- +- +- +- 1 +- 2 +- 2 +- 3 +- fill +- fill +- +- +- +- +- +- True +- Current allocation: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- Change allocation: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 1 +- 2 +- fill +- +- +- +- +- +- +- True +- 200 MB +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- False +- 0 +- +- +- +- True +- True +- 1 +- 0 +- True +- GTK_UPDATE_IF_VALID +- False +- False +- 50 50 32000 5 10 10 +- +- Memory Select +- +- +- +- +- 0 +- False +- True +- +- +- +- +- +- True +- MB +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- False +- False +- +- +- +- +- 1 +- 2 +- 1 +- 2 +- fill +- fill +- +- +- +- +- 0 +- False +- False +- +- +- +- +- +- +- +- +- +- True +- <b>Memory</b> +- False +- True +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- label_item +- +- +- +- +- 15 +- True +- True +- +- +- +- +- +- 6 +- True +- GTK_BUTTONBOX_END +- 5 +- +- +- +- True +- False +- True +- True +- gtk-apply +- True +- GTK_RELIEF_NORMAL +- True +- +- +- +- +- +- 0 +- False +- False +- +- +- +- +- False +- True +- +- +- +- +- +- True +- Memory +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- tab +- +- +- +- +- +- True +- False +- 0 +- +- +- +- True +- 0 +- 0.5 +- GTK_SHADOW_NONE +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 5 +- 3 +- 12 +- 0 +- +- +- +- 3 +- True +- 5 +- 3 +- False +- 3 +- 3 +- +- +- +- True +- Source type: +- True +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- Source path: +- True +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 1 +- 2 +- fill +- +- +- +- +- +- +- True +- Target device: +- True +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 3 +- 4 +- fill +- +- +- +- +- +- +- True +- Block +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- disk +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 2 +- 3 +- fill +- +- +- +- +- +- +- True +- Target type: +- True +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 2 +- 3 +- fill +- +- +- +- +- +- +- True +- label393 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 3 +- 4 +- fill +- +- +- +- +- +- +- True +- True +- True +- gtk-connect +- True +- GTK_RELIEF_NORMAL +- True +- +- +- +- 2 +- 3 +- 1 +- 2 +- fill +- +- +- +- +- +- +- True +- label402 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_START +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 1 +- 2 +- +- +- +- +- +- +- True +- Permissions: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 4 +- 5 +- fill +- +- +- +- +- +- +- True +- label423 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 4 +- 5 +- fill +- +- +- +- +- +- +- +- +- +- +- True +- <b>Virtual Disk</b> +- False +- True +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- label_item +- +- +- +- +- 15 +- False +- False +- +- +- +- +- +- True +- False +- 0 +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 0 +- 0 +- 13 +- 0 +- +- +- +- True +- gtk-info +- 4 +- 0.5 +- 0 +- 0 +- 0 +- +- +- +- +- 0 +- False +- False +- +- +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 0 +- 0 +- 3 +- 0 +- +- +- +- True +- <b>Tip:</b> 'source' refers to information seen from the host OS, while 'target' refers to information seen from the guest OS +- False +- True +- GTK_JUSTIFY_LEFT +- True +- False +- 0.5 +- 0 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- +- +- 0 +- False +- False +- +- +- +- +- 0 +- True +- True +- +- +- +- +- +- True +- GTK_BUTTONBOX_END +- 5 +- +- +- 0 +- False +- False +- GTK_PACK_END +- +- +- +- +- +- 6 +- True +- GTK_BUTTONBOX_END +- 0 +- +- +- +- True +- True +- True +- gtk-remove +- True +- GTK_RELIEF_NORMAL +- True +- +- +- +- +- +- 0 +- False +- True +- +- +- +- +- False +- True +- +- +- +- +- +- True +- Disk +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- tab +- +- +- +- +- +- True +- False +- 0 +- +- +- +- True +- 0 +- 0.5 +- GTK_SHADOW_NONE +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 5 +- 3 +- 12 +- 0 +- +- +- +- 3 +- True +- 3 +- 2 +- False +- 3 +- 3 +- +- +- +- True +- Source type: +- True +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- label395 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- MAC address: +- True +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- network-mac-address +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 2 +- 3 +- fill +- +- +- +- +- +- +- True +- Source device: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 1 +- 2 +- fill +- +- +- +- +- +- +- True +- label401 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 1 +- 2 +- fill +- +- +- +- +- +- +- True +- True +- False +- True +- 0 +- +- True +- • +- False +- +- MAC Address Field +- +- +- +- 1 +- 2 +- 2 +- 3 +- +- +- +- +- +- +- +- +- +- +- True +- <b>Virtual Network Interface</b> +- False +- True +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- label_item +- +- +- +- +- 15 +- False +- False +- +- +- +- +- +- True +- False +- 0 +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 0 +- 0 +- 13 +- 0 +- +- +- +- True +- gtk-info +- 4 +- 0.5 +- 0 +- 0 +- 0 +- +- +- +- +- 0 +- False +- False +- +- +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 0 +- 0 +- 3 +- 0 +- +- +- +- True +- <b>Tip:</b> 'Source device' refers to the name of the device as seen from the host OS. +- False +- True +- GTK_JUSTIFY_LEFT +- True +- False +- 0.5 +- 0 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- +- +- 0 +- False +- False +- +- +- +- +- 0 +- True +- True +- +- +- +- +- +- 6 +- True +- GTK_BUTTONBOX_END +- 0 +- +- +- +- True +- True +- True +- gtk-remove +- True +- GTK_RELIEF_NORMAL +- True +- +- +- +- +- +- 0 +- False +- False +- +- +- +- +- False +- True +- +- +- +- +- +- True +- Network +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- tab +- +- +- +- +- +- True +- False +- 0 +- +- +- +- True +- 0 +- 0.5 +- GTK_SHADOW_NONE +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 5 +- 3 +- 12 +- 0 +- +- +- +- 3 +- True +- 2 +- 2 +- False +- 3 +- 3 +- +- +- +- True +- Type: +- True +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- label403 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- Mode: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 1 +- 2 +- fill +- +- +- +- +- +- +- True +- label401 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 1 +- 2 +- fill +- +- +- +- +- +- +- +- +- +- +- True +- <b>Virtual Pointer</b> +- False +- True +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- label_item +- +- +- +- +- 15 +- False +- False +- +- +- +- +- +- True +- False +- 0 +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 0 +- 0 +- 13 +- 0 +- +- +- +- True +- gtk-info +- 4 +- 0.5 +- 0 +- 0 +- 0 +- +- +- +- +- 0 +- False +- False +- +- +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 0 +- 0 +- 3 +- 0 +- +- +- +- True +- <b>Tip:</b> A graphics tablet configured as the default pointer in the guest OS will ensure that the virtual cursor moves in sync with the local desktop cursor. +- False +- True +- GTK_JUSTIFY_LEFT +- True +- False +- 0.5 +- 0 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- +- +- 0 +- False +- False +- +- +- +- +- 0 +- True +- True +- +- +- +- +- +- 6 +- True +- GTK_BUTTONBOX_END +- 0 +- +- +- +- True +- True +- True +- gtk-remove +- True +- GTK_RELIEF_NORMAL +- True +- +- +- +- +- +- 0 +- False +- False +- +- +- +- +- False +- True +- +- +- +- +- +- True +- Input +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- tab +- +- +- +- +- +- True +- False +- 0 +- +- +- +- True +- 0 +- 0.5 +- GTK_SHADOW_NONE +- +- +- +- True +- 0.5 +- 0.5 +- 1 +- 1 +- 5 +- 3 +- 12 +- 0 +- +- +- +- 3 +- True +- 4 +- 2 +- False +- 3 +- 3 +- +- +- +- True +- Type: +- True +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- label403 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 0 +- 1 +- fill +- +- +- +- +- +- +- True +- Address: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 1 +- 2 +- fill +- +- +- +- +- +- +- True +- label401 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 1 +- 2 +- fill +- +- +- +- +- +- +- True +- label401 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 2 +- 3 +- fill +- +- +- +- +- +- +- True +- label401 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 1 +- 2 +- 3 +- 4 +- fill +- +- +- +- +- +- +- True +- Port: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 2 +- 3 +- fill +- +- +- +- +- +- +- True +- Password: +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- 0 +- 1 +- 3 +- 4 +- fill +- +- +- +- +- +- +- +- +- +- +- True +- <b>Virtual Display</b> +- False +- True +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- label_item +- +- +- +- +- 15 +- True +- True +- +- +- +- +- +- 6 +- True +- GTK_BUTTONBOX_END +- 0 +- +- +- +- True +- True +- True +- gtk-remove +- True +- GTK_RELIEF_NORMAL +- True +- +- +- +- +- +- 0 +- False +- True +- +- +- +- +- False +- True +- +- +- +- +- +- True +- label409 +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- tab +- +- +- +- +- True +- True +- +- +- +- +- False +- True +- +- +- +- +- +- True +- Hardware +- False +- False +- GTK_JUSTIFY_LEFT +- False +- False +- 0.5 +- 0.5 +- 0 +- 0 +- PANGO_ELLIPSIZE_NONE +- -1 +- False +- 0 +- +- +- tab +- +- +- +- +- 0 +- True +- True +- +- +- +- +- +- ++ ++ True ++ Virtual Machine Details ++ 700 ++ 540 ++ ++ ++ ++ True ++ ++ ++ True ++ ++ ++ True ++ Virtual _Machine ++ True ++ ++ ++ ++ ++ ++ True ++ _Run ++ True ++ ++ ++ ++ ++ ++ True ++ _Pause ++ True ++ ++ ++ ++ ++ ++ True ++ S_hutdown ++ True ++ ++ ++ ++ ++ ++ True ++ _Save ++ True ++ ++ ++ ++ ++ ++ True ++ _Destroy ++ True ++ ++ ++ ++ ++ ++ True ++ ++ ++ ++ ++ True ++ gtk-close ++ True ++ True ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ _View ++ True ++ ++ ++ ++ ++ ++ True ++ _Graphical Console ++ True ++ ++ ++ ++ ++ ++ True ++ _Serial Console ++ True ++ ++ ++ ++ ++ ++ True ++ ++ ++ ++ ++ True ++ Toolbar ++ True ++ True ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ _Help ++ True ++ ++ ++ ++ ++ ++ True ++ _Contents ++ True ++ ++ ++ ++ ++ True ++ gtk-help ++ 1 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ False ++ False ++ ++ ++ ++ ++ True ++ GTK_TOOLBAR_BOTH ++ ++ ++ True ++ Run ++ True ++ gtk-media-play ++ ++ ++ ++ False ++ ++ ++ ++ ++ True ++ Pause ++ True ++ gtk-media-pause ++ ++ ++ ++ False ++ ++ ++ ++ ++ True ++ Shutdown ++ True ++ ++ ++ ++ False ++ ++ ++ ++ ++ False ++ False ++ 1 ++ ++ ++ ++ ++ True ++ True ++ 6 ++ False ++ ++ ++ True ++ True ++ GTK_POLICY_AUTOMATIC ++ GTK_POLICY_AUTOMATIC ++ ++ ++ True ++ GTK_SHADOW_NONE ++ ++ ++ True ++ ++ ++ True ++ 3 ++ 0 ++ GTK_SHADOW_NONE ++ ++ ++ True ++ 12 ++ ++ ++ True ++ 3 ++ 3 ++ 2 ++ 3 ++ 3 ++ ++ ++ True ++ True ++ False ++ ++ UUID Field ++ ++ ++ ++ 1 ++ 2 ++ 1 ++ 2 ++ ++ ++ ++ ++ ++ True ++ 1 ++ UUID: ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 1 ++ Status: ++ ++ ++ 2 ++ 3 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ ++ ++ True ++ gtk-stop ++ ++ ++ False ++ ++ ++ ++ ++ True ++ 0 ++ Shut down ++ PANGO_ELLIPSIZE_START ++ ++ ++ 1 ++ ++ ++ ++ ++ 1 ++ 2 ++ 2 ++ 3 ++ GTK_FILL ++ ++ ++ ++ ++ True ++ 1 ++ Name: ++ ++ ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ True ++ False ++ ++ Name Field ++ ++ ++ ++ 1 ++ 2 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ <b>Basic details</b> ++ True ++ ++ ++ label_item ++ ++ ++ ++ ++ False ++ ++ ++ ++ ++ True ++ 3 ++ 0 ++ GTK_SHADOW_NONE ++ ++ ++ True ++ 12 ++ ++ ++ True ++ 3 ++ 4 ++ 3 ++ 3 ++ 3 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ 0.119999997318 ++ 0.10000000149 ++ ++ ++ 1 ++ 2 ++ 2 ++ 3 ++ ++ ++ ++ ++ ++ True ++ 1 ++ Network usage: ++ ++ ++ 3 ++ 4 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 1 ++ Disk usage: ++ ++ ++ 2 ++ 3 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 1 ++ Memory usage: ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ 80 MB of 1 GB ++ ++ ++ 2 ++ 3 ++ 3 ++ 4 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ 20 bits/sec ++ ++ ++ 2 ++ 3 ++ 2 ++ 3 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ 30 MB of 128 MB ++ ++ ++ 2 ++ 3 ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ 18% ++ ++ ++ 2 ++ 3 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 1 ++ CPU usage: ++ ++ ++ GTK_FILL ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ <b>Performance</b> ++ True ++ ++ ++ label_item ++ ++ ++ ++ ++ 1 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ Overview ++ ++ ++ tab ++ False ++ ++ ++ ++ ++ True ++ True ++ 200 ++ ++ ++ True ++ 6 ++ 6 ++ ++ ++ True ++ True ++ GTK_POLICY_AUTOMATIC ++ GTK_POLICY_AUTOMATIC ++ GTK_SHADOW_IN ++ ++ ++ True ++ True ++ False ++ ++ ++ ++ ++ ++ ++ True ++ True ++ gtk-add ++ True ++ 0 ++ ++ ++ ++ False ++ False ++ 1 ++ ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ True ++ True ++ ++ ++ True ++ ++ ++ True ++ 0 ++ GTK_SHADOW_NONE ++ ++ ++ True ++ 5 ++ 3 ++ 12 ++ ++ ++ True ++ ++ ++ True ++ 0 ++ How many virtual CPUs should be allocated for this machine? ++ True ++ ++ ++ False ++ False ++ ++ ++ ++ ++ True ++ 3 ++ 4 ++ 2 ++ 3 ++ 3 ++ ++ ++ True ++ 0 ++ 8 ++ ++ ++ 1 ++ 2 ++ 2 ++ 3 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Current allocation: ++ ++ ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ True ++ 3 1 32 1 2 2 ++ 1 ++ True ++ GTK_UPDATE_IF_VALID ++ ++ VCPU Select ++ ++ ++ ++ ++ 1 ++ 2 ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ 2 ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Change allocation: ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ 8 ++ ++ ++ 1 ++ 2 ++ 3 ++ 4 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Maximum allocation: ++ ++ ++ 2 ++ 3 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Total CPUs on host machine: ++ ++ ++ 3 ++ 4 ++ GTK_FILL ++ ++ ++ ++ ++ ++ False ++ False ++ 1 ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ <b>CPUs</b> ++ True ++ ++ ++ label_item ++ ++ ++ ++ ++ False ++ False ++ 15 ++ ++ ++ ++ ++ True ++ ++ ++ True ++ 13 ++ ++ ++ True ++ gtk-info ++ ++ ++ ++ ++ False ++ False ++ ++ ++ ++ ++ True ++ 3 ++ ++ ++ True ++ <b>Tip:</b> For best performance, the number of virtual CPUs should be less than (or equal to) the number of physical CPUs on the host system. ++ True ++ True ++ ++ ++ ++ ++ False ++ False ++ 1 ++ ++ ++ ++ ++ False ++ False ++ 1 ++ ++ ++ ++ ++ True ++ 6 ++ 5 ++ GTK_BUTTONBOX_END ++ ++ ++ True ++ False ++ True ++ True ++ gtk-apply ++ True ++ 0 ++ ++ ++ ++ ++ ++ False ++ False ++ GTK_PACK_END ++ 2 ++ ++ ++ ++ ++ True ++ ++ ++ ++ ++ True ++ Processor ++ ++ ++ tab ++ False ++ ++ ++ ++ ++ True ++ ++ ++ True ++ 0 ++ GTK_SHADOW_NONE ++ ++ ++ True ++ 5 ++ 3 ++ 12 ++ ++ ++ True ++ ++ ++ True ++ 0 ++ How much memory should be allocated for this machine? ++ True ++ ++ ++ False ++ False ++ ++ ++ ++ ++ True ++ 3 ++ 4 ++ 2 ++ 3 ++ 3 ++ ++ ++ True ++ ++ ++ True ++ True ++ 50 50 32000 5 10 10 ++ 1 ++ True ++ GTK_UPDATE_IF_VALID ++ ++ Memory Select ++ ++ ++ ++ ++ False ++ ++ ++ ++ ++ True ++ MB ++ ++ ++ False ++ False ++ 1 ++ ++ ++ ++ ++ 1 ++ 2 ++ 1 ++ 2 ++ GTK_FILL ++ GTK_FILL ++ ++ ++ ++ ++ True ++ 0 ++ 200 MB ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Change allocation: ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Current allocation: ++ ++ ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ ++ ++ True ++ True ++ 50 50 32000 5 10 10 ++ 1 ++ True ++ GTK_UPDATE_IF_VALID ++ ++ Max Memory Select ++ ++ ++ ++ ++ False ++ ++ ++ ++ ++ True ++ MB ++ ++ ++ False ++ False ++ 1 ++ ++ ++ ++ ++ 1 ++ 2 ++ 2 ++ 3 ++ GTK_FILL ++ GTK_FILL ++ ++ ++ ++ ++ True ++ 0 ++ 2 GB ++ ++ ++ 1 ++ 2 ++ 3 ++ 4 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Maximum allocation: ++ ++ ++ 2 ++ 3 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Total memory on host machine: ++ ++ ++ 3 ++ 4 ++ GTK_FILL ++ ++ ++ ++ ++ ++ False ++ False ++ 1 ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ <b>Memory</b> ++ True ++ ++ ++ label_item ++ ++ ++ ++ ++ 15 ++ ++ ++ ++ ++ True ++ 6 ++ 5 ++ GTK_BUTTONBOX_END ++ ++ ++ True ++ False ++ True ++ True ++ gtk-apply ++ True ++ 0 ++ ++ ++ ++ ++ ++ False ++ False ++ 1 ++ ++ ++ ++ ++ 1 ++ ++ ++ ++ ++ True ++ Memory ++ ++ ++ tab ++ 1 ++ False ++ ++ ++ ++ ++ True ++ ++ ++ True ++ 0 ++ GTK_SHADOW_NONE ++ ++ ++ True ++ 5 ++ 3 ++ 12 ++ ++ ++ True ++ 3 ++ 5 ++ 3 ++ 3 ++ 3 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ 0 ++ label423 ++ ++ ++ 1 ++ 2 ++ 4 ++ 5 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Permissions: ++ ++ ++ 4 ++ 5 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ label402 ++ PANGO_ELLIPSIZE_START ++ ++ ++ 1 ++ 2 ++ 1 ++ 2 ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ gtk-connect ++ True ++ 0 ++ ++ ++ ++ 2 ++ 3 ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ label393 ++ ++ ++ 1 ++ 2 ++ 3 ++ 4 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Target type: ++ True ++ ++ ++ 2 ++ 3 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ disk ++ ++ ++ 1 ++ 2 ++ 2 ++ 3 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Block ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Target device: ++ True ++ ++ ++ 3 ++ 4 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Source path: ++ True ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Source type: ++ True ++ ++ ++ GTK_FILL ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ <b>Virtual Disk</b> ++ True ++ ++ ++ label_item ++ ++ ++ ++ ++ False ++ False ++ 15 ++ ++ ++ ++ ++ True ++ ++ ++ True ++ 13 ++ ++ ++ True ++ 0 ++ gtk-info ++ ++ ++ ++ ++ False ++ False ++ ++ ++ ++ ++ True ++ 3 ++ ++ ++ True ++ 0 ++ <b>Tip:</b> 'source' refers to information seen from the host OS, while 'target' refers to information seen from the guest OS ++ True ++ True ++ ++ ++ ++ ++ False ++ False ++ 1 ++ ++ ++ ++ ++ 1 ++ ++ ++ ++ ++ True ++ 6 ++ GTK_BUTTONBOX_END ++ ++ ++ True ++ True ++ True ++ gtk-remove ++ True ++ 0 ++ ++ ++ ++ ++ ++ False ++ 3 ++ ++ ++ ++ ++ True ++ 5 ++ GTK_BUTTONBOX_END ++ ++ ++ False ++ False ++ GTK_PACK_END ++ 2 ++ ++ ++ ++ ++ 2 ++ ++ ++ ++ ++ True ++ Disk ++ ++ ++ tab ++ 2 ++ False ++ ++ ++ ++ ++ True ++ ++ ++ True ++ 0 ++ GTK_SHADOW_NONE ++ ++ ++ True ++ 5 ++ 3 ++ 12 ++ ++ ++ True ++ 3 ++ 3 ++ 2 ++ 3 ++ 3 ++ ++ ++ True ++ True ++ False ++ ++ MAC Address Field ++ ++ ++ ++ 1 ++ 2 ++ 2 ++ 3 ++ ++ ++ ++ ++ ++ True ++ 0 ++ label401 ++ ++ ++ 1 ++ 2 ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Source device: ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ MAC address: ++ True ++ network-mac-address ++ ++ ++ 2 ++ 3 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ label395 ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Source type: ++ True ++ ++ ++ GTK_FILL ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ <b>Virtual Network Interface</b> ++ True ++ ++ ++ label_item ++ ++ ++ ++ ++ False ++ False ++ 15 ++ ++ ++ ++ ++ True ++ ++ ++ True ++ 13 ++ ++ ++ True ++ 0 ++ gtk-info ++ ++ ++ ++ ++ False ++ False ++ ++ ++ ++ ++ True ++ 3 ++ ++ ++ True ++ 0 ++ <b>Tip:</b> 'Source device' refers to the name of the device as seen from the host OS. ++ True ++ True ++ ++ ++ ++ ++ False ++ False ++ 1 ++ ++ ++ ++ ++ 1 ++ ++ ++ ++ ++ True ++ 6 ++ GTK_BUTTONBOX_END ++ ++ ++ True ++ True ++ True ++ gtk-remove ++ True ++ 0 ++ ++ ++ ++ ++ ++ False ++ False ++ 2 ++ ++ ++ ++ ++ 3 ++ ++ ++ ++ ++ True ++ Network ++ ++ ++ tab ++ 3 ++ False ++ ++ ++ ++ ++ True ++ ++ ++ True ++ 0 ++ GTK_SHADOW_NONE ++ ++ ++ True ++ 5 ++ 3 ++ 12 ++ ++ ++ True ++ 3 ++ 2 ++ 2 ++ 3 ++ 3 ++ ++ ++ True ++ 0 ++ label401 ++ ++ ++ 1 ++ 2 ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Mode: ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ label403 ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Type: ++ True ++ ++ ++ GTK_FILL ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ <b>Virtual Pointer</b> ++ True ++ ++ ++ label_item ++ ++ ++ ++ ++ False ++ False ++ 15 ++ ++ ++ ++ ++ True ++ ++ ++ True ++ 13 ++ ++ ++ True ++ 0 ++ gtk-info ++ ++ ++ ++ ++ False ++ False ++ ++ ++ ++ ++ True ++ 3 ++ ++ ++ True ++ 0 ++ <b>Tip:</b> A graphics tablet configured as the default pointer in the guest OS will ensure that the virtual cursor moves in sync with the local desktop cursor. ++ True ++ True ++ ++ ++ ++ ++ False ++ False ++ 1 ++ ++ ++ ++ ++ 1 ++ ++ ++ ++ ++ True ++ 6 ++ GTK_BUTTONBOX_END ++ ++ ++ True ++ True ++ True ++ gtk-remove ++ True ++ 0 ++ ++ ++ ++ ++ ++ False ++ False ++ 2 ++ ++ ++ ++ ++ 4 ++ ++ ++ ++ ++ True ++ Input ++ ++ ++ tab ++ 4 ++ False ++ ++ ++ ++ ++ True ++ ++ ++ True ++ 0 ++ GTK_SHADOW_NONE ++ ++ ++ True ++ 5 ++ 3 ++ 12 ++ ++ ++ True ++ 3 ++ 4 ++ 2 ++ 3 ++ 3 ++ ++ ++ True ++ 0 ++ Password: ++ ++ ++ 3 ++ 4 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Port: ++ ++ ++ 2 ++ 3 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ label401 ++ ++ ++ 1 ++ 2 ++ 3 ++ 4 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ label401 ++ ++ ++ 1 ++ 2 ++ 2 ++ 3 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ label401 ++ ++ ++ 1 ++ 2 ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Address: ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ label403 ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ ++ True ++ 0 ++ Type: ++ True ++ ++ ++ GTK_FILL ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ <b>Virtual Display</b> ++ True ++ ++ ++ label_item ++ ++ ++ ++ ++ 15 ++ ++ ++ ++ ++ True ++ 6 ++ GTK_BUTTONBOX_END ++ ++ ++ True ++ True ++ True ++ gtk-remove ++ True ++ 0 ++ ++ ++ ++ ++ ++ False ++ 1 ++ ++ ++ ++ ++ 5 ++ ++ ++ ++ ++ True ++ label409 ++ ++ ++ tab ++ 5 ++ False ++ ++ ++ ++ ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ ++ ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ ++ ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ 0 ++ GTK_SHADOW_NONE ++ ++ ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ 12 ++ ++ ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ 2 ++ 2 ++ 5 ++ ++ ++ ++ ++ ++ True ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ Autostart VM ++ 0 ++ True ++ ++ ++ ++ 1 ++ 2 ++ ++ ++ ++ ++ ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ 0 ++ Start virtual machine on host boot up? ++ PANGO_ELLIPSIZE_END ++ ++ ++ 2 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ <b>Autostart</b> ++ True ++ ++ ++ label_item ++ ++ ++ ++ ++ False ++ False ++ 15 ++ ++ ++ ++ ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ 0 ++ GTK_SHADOW_NONE ++ ++ ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ 12 ++ ++ ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ 2 ++ 2 ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ ++ ++ ++ 1 ++ 2 ++ GTK_FILL ++ ++ ++ ++ ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ 0 ++ Device virtual machine will boot from: ++ ++ ++ GTK_FILL ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ <b>Boot Device</b> ++ True ++ ++ ++ label_item ++ ++ ++ ++ ++ False ++ 15 ++ 1 ++ ++ ++ ++ ++ ++ ++ True ++ 6 ++ 5 ++ GTK_BUTTONBOX_END ++ ++ ++ True ++ False ++ True ++ True ++ gtk-apply ++ True ++ 0 ++ ++ ++ ++ ++ ++ False ++ False ++ 1 ++ ++ ++ ++ ++ 6 ++ ++ ++ ++ ++ True ++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ++ Boot Options ++ ++ ++ tab ++ 6 ++ False ++ ++ ++ ++ ++ True ++ True ++ ++ ++ ++ ++ 1 ++ ++ ++ ++ ++ True ++ Hardware ++ ++ ++ tab ++ 1 ++ False ++ ++ ++ ++ ++ 2 ++ ++ ++ ++ ++ + --- virt-manager-0.5.3.orig/debian/patches/show_session_or_system_in_console.diff +++ virt-manager-0.5.3/debian/patches/show_session_or_system_in_console.diff @@ -0,0 +1,38 @@ +Index: virt-manager-0.5.3/src/virtManager/connection.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/connection.py 2008-02-23 21:06:29.134918324 +0100 ++++ virt-manager-0.5.3/src/virtManager/connection.py 2008-02-23 21:07:05.885922981 +0100 +@@ -223,8 +223,33 @@ + offset = hostname.find(".") + if offset > 0 and not hostname[0].isdigit(): + return hostname[0:offset] ++ if self.get_driver() == 'qemu' and hostname == 'localhost': ++ if self.get_path() != '': ++ if self.get_path() == '/system': ++ path = 'System' ++ elif self.get_path() == '/session': ++ path = 'User' ++ else: ++ path = self.get_path[1:] ++ elif sys.getuid() == 0: ++ path = 'system' ++ else: ++ path = 'session' ++ ++ return '%s (%s)' % (hostname, path) + return hostname + ++ def get_path(self): ++ try: ++ (scheme, username, netloc, path, query, fragment) = uri_split(self.uri) ++ ++ if path != "": ++ return path ++ except Exception, e: ++ logging.warning("Cannot parse URI %s: %s" % (self.uri, str(e))) ++ ++ return "" ++ + def get_hostname(self, resolveLocal=False): + try: + (scheme, username, netloc, path, query, fragment) = uri_split(self.uri) --- virt-manager-0.5.3.orig/debian/patches/ctrl-alt-f9.patch +++ virt-manager-0.5.3/debian/patches/ctrl-alt-f9.patch @@ -0,0 +1,38 @@ +--- virt-manager-0.5.3.orig/src/virtManager/console.py ++++ virt-manager-0.5.3/src/virtManager/console.py +@@ -204,7 +204,7 @@ + def send_key(self, src): + keys = None + if src.get_name() == "menu-send-cad": +- keys = ["Control_L", "Alt_L", "Del"] ++ keys = ["Control_L", "Alt_L", "Delete"] + elif src.get_name() == "menu-send-cab": + keys = ["Control_L", "Alt_L", "BackSpace"] + elif src.get_name() == "menu-send-caf1": +@@ -223,6 +223,8 @@ + keys = ["Control_L", "Alt_L", "F7"] + elif src.get_name() == "menu-send-caf8": + keys = ["Control_L", "Alt_L", "F8"] ++ elif src.get_name() == "menu-send-caf9": ++ keys = ["Control_L", "Alt_L", "F9"] + elif src.get_name() == "menu-send-printscreen": + keys = ["PrintScreen"] + +--- virt-manager-0.5.3.orig/src/vmm-console.glade ++++ virt-manager-0.5.3/src/vmm-console.glade +@@ -287,6 +287,15 @@ + + + ++ ++ True ++ Ctrl+Alt+F_9 ++ True ++ ++ ++ ++ ++ + + True + --- virt-manager-0.5.3.orig/debian/patches/da_l10n.patch +++ virt-manager-0.5.3/debian/patches/da_l10n.patch @@ -0,0 +1,11 @@ +--- virt-manager-0.5.3.orig/po/da.po ++++ virt-manager-0.5.3/po/da.po +@@ -2876,7 +2876,7 @@ + + #: ../../po/../src/virtManager/domain.py:411 + msgid "Shutoff" +-msgstr "Lukker ned" ++msgstr "Lukket ned" + + #: ../../po/../src/virtManager/domain.py:413 + msgid "Crashed" --- virt-manager-0.5.3.orig/debian/patches/more_helpful_error_message.patch +++ virt-manager-0.5.3/debian/patches/more_helpful_error_message.patch @@ -0,0 +1,16 @@ +=== modified file 'src/virtManager/manager.py' +Index: virt-manager-0.5.3/src/virtManager/manager.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/manager.py 2008-03-12 09:24:07.663334859 +0100 ++++ virt-manager-0.5.3/src/virtManager/manager.py 2008-03-12 09:24:07.747304508 +0100 +@@ -1032,7 +1032,9 @@ + gtk.BUTTONS_CLOSE, + _("Unable to open a connection to the libvirt management daemon.\n\n" + + "Verify that:\n" + +- " - The 'libvirtd' daemon has been started\n"), ++ " - The 'libvirt-bin' package is installed\n" + ++ " - The 'libvirtd' daemon has been started\n" + ++ (conn.get_path() == "/system" and " - That you have access to '/var/run/libvirt/libvirt-sock'\n" or '')), + details) + dg.set_title(_("Virtual Machine Manager Connection Failure")) + dg.run() --- virt-manager-0.5.3.orig/debian/patches/restore_saved_images.patch +++ virt-manager-0.5.3/debian/patches/restore_saved_images.patch @@ -0,0 +1,14 @@ +=== modified file 'src/virtManager/manager.py' +Index: virt-manager-0.5.3/src/virtManager/manager.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/manager.py 2008-03-12 10:18:38.472312907 +0100 ++++ virt-manager-0.5.3/src/virtManager/manager.py 2008-03-12 10:18:58.224332725 +0100 +@@ -335,7 +335,7 @@ + try: + f = open(file, "r") + magic = f.read(16) +- if magic != "LinuxGuestRecord": ++ if magic != "LinuxGuestRecord" and magic != "LibvirtQemudSave": + return False + return True + except: --- virt-manager-0.5.3.orig/debian/patches/save_separate_connection.patch +++ virt-manager-0.5.3/debian/patches/save_separate_connection.patch @@ -0,0 +1,41 @@ +Index: virt-manager-0.5.3/src/virtManager/engine.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/engine.py 2008-03-12 14:46:12.316814503 +0100 ++++ virt-manager-0.5.3/src/virtManager/engine.py 2008-03-13 00:11:46.836312746 +0100 +@@ -318,8 +318,10 @@ + self.connections[uri]["windowCreate"] = create + self.connections[uri]["windowCreate"].show() + +- def add_connection(self, uri, readOnly=None): ++ def add_connection(self, uri, readOnly=None, privateConnection=False): + conn = vmmConnection(self.get_config(), uri, readOnly) ++ if privateConnection: ++ return conn + self.connections[uri] = { + "connection": conn, + "windowHost": None, +@@ -350,14 +352,20 @@ + + return handle_id + +- def get_connection(self, uri, readOnly=None): +- if not(self.connections.has_key(uri)): +- self.add_connection(uri, readOnly) ++ def get_connection(self, uri, readOnly=None, privateConnection=False): ++ if not privateConnection: ++ if not(self.connections.has_key(uri)): ++ self.add_connection(uri, readOnly) ++ else: ++ return self.add_connection(uri, readOnly, True) + + return self.connections[uri]["connection"] + + def save_domain(self, src, uri, uuid): +- con = self.get_connection(uri, False) ++ con = self.get_connection(uri, False, True) ++ con.open() ++ # Needed to let the connection know about all the vms ++ con.tick() + if con.is_remote(): + warn = gtk.MessageDialog(src.window.get_widget("vmm-details"), + gtk.DIALOG_DESTROY_WITH_PARENT, --- virt-manager-0.5.3.orig/debian/patches/series +++ virt-manager-0.5.3/debian/patches/series @@ -0,0 +1,14 @@ +gconf-dir.diff +ssh_tunnel_username.patch +fix_heuristic.patch +#add_usermode_network.patch +fix_non_privileged_network.patch +fix_add_bridged_net.patch +show_session_or_system_in_console.diff +allow_chaning_boot_device.patch +ctrl-alt-f9.patch +more_helpful_error_message.patch +restore_saved_images.patch +save_separate_connection.patch +virtio.patch +connection.py.patch --- virt-manager-0.5.3.orig/debian/patches/virtio.patch +++ virt-manager-0.5.3/debian/patches/virtio.patch @@ -0,0 +1,20 @@ +diff -Nur virt-manager-0.5.3/src/virtManager/create.py virt-manager-0.5.3.new/src/virtManager/create.py +--- virt-manager-0.5.3/src/virtManager/create.py 2008-04-17 22:31:10.000000000 -0400 ++++ virt-manager-0.5.3.new/src/virtManager/create.py 2008-04-17 22:31:32.000000000 -0400 +@@ -912,6 +912,7 @@ + self.non_sparse = True + else: + self.non_sparse = False ++ self._disk.virtio = self._guest.get_virtio_blk() + except ValueError, e: + self._validation_error_box(_("Invalid Storage Address"), \ + str(e)) +@@ -967,6 +968,8 @@ + str(e)) + return False + ++ self._net.virtio = self._guest.get_virtio_net() ++ + vms = [] + for domains in self.connection.vms.values(): + vms.append(domains.vm) --- virt-manager-0.5.3.orig/debian/patches/connection.py.patch +++ virt-manager-0.5.3/debian/patches/connection.py.patch @@ -0,0 +1,27 @@ +Index: virt-manager-0.5.3/src/virtManager/connection.py +=================================================================== +--- virt-manager-0.5.3.orig/src/virtManager/connection.py 2008-04-22 01:53:09.751789315 +0200 ++++ virt-manager-0.5.3/src/virtManager/connection.py 2008-04-22 01:54:24.263850200 +0200 +@@ -161,9 +161,10 @@ + + def _device_added(self, path): + obj = self.bus.get_object("org.freedesktop.Hal", path) +- if obj.QueryCapability("net"): +- name = obj.GetPropertyString("net.interface") +- mac = obj.GetPropertyString("net.address") ++ obj_if = dbus.Interface(obj, "org.freedesktop.Hal.Device") ++ if obj_if.QueryCapability("net"): ++ name = obj_if.GetPropertyString("net.interface") ++ mac = obj_if.GetPropertyString("net.address") + + # Now magic to determine if the device is part of a bridge + shared = False +@@ -171,7 +172,7 @@ + try: + # XXX Linux specific - needs porting for other OS - patches + # welcomed... +- sysfspath = obj.GetPropertyString("linux.sysfs_path") ++ sysfspath = obj_if.GetPropertyString("linux.sysfs_path") + + # If running a device in bridged mode, there's a reasonable + # chance that the actual ethernet device has been renamed to --- virt-manager-0.5.3.orig/debian/README.Debian +++ virt-manager-0.5.3/debian/README.Debian @@ -0,0 +1 @@ + --- virt-manager-0.5.3.orig/debian/compat +++ virt-manager-0.5.3/debian/compat @@ -0,0 +1 @@ +5 --- virt-manager-0.5.3.orig/debian/copyright +++ virt-manager-0.5.3/debian/copyright @@ -0,0 +1,67 @@ +This is the Ubuntu / Debian GNU/Linux prepackaged version of the +Virtual Machine Manger. + +Packaged by Marcelo Boveto Shima + and Guido Guenther + +Downloaded from http://virt-manager.et.redhat.com/download.html + +Upstream Author: + + Daniel Berrange + Hugh O. Brock + Jeremy Katz + +Copyright: + + Daniel Berrange + Red Hat, Inc. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +this program; if not, write to the Free Software Foundation, Inc., 51 Franklin +St, Fifth Floor, Boston, MA 02110-1301, USA. + +On Ubuntu / Debian GNU/Linux systems, the complete text of the GNU +General Public License can be found in `/usr/share/common-licenses/GPL'. + +src/graphWidgets: + + Copyright (C) 2005-2006 Red Hat, Inc., David Malcolm + Copyright (C) 2006 Daniel P. Berrange + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +You should have received a copy of the GNU Library General Public License with +this program; if not, write to the Free Software Foundation, Inc., 51 Franklin +St, Fifth Floor, Boston, MA 02110-1301, USA. + +On Ubuntu / Debian GNU/Linux systems, the complete text of the GNU +General Library Public License can be found in +`/usr/share/common-licenses/LGPL-2'. + +help/: + + Copyright 2007 Red Hat Inc., and Hugh Brock + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License (GFDL), Version 1.1 or any later version published + by the Free Software Foundation with no Invariant Sections, + no Front-Cover Texts, and no Back-Cover Texts. + +On Ubuntu / Debian GNU/Linux systems, the complete text of the GNU Free +Documentation License can be found in `/usr/share/common-licenses/GFDL'. + + --- virt-manager-0.5.3.orig/debian/postrm +++ virt-manager-0.5.3/debian/postrm @@ -0,0 +1,9 @@ +#!/bin/sh + +set -e + +if [ "$1" = purge ]; then + rm -rf /usr/share/virt-manager +fi + +#DEBHELPER# --- virt-manager-0.5.3.orig/debian/watch +++ virt-manager-0.5.3/debian/watch @@ -0,0 +1,3 @@ +# format version number, currently 3; this line is compulsory! +version=3 +http://virt-manager.et.redhat.com/download/sources/virt-manager/virt-manager-([\d\.]*)\.tar\.gz --- virt-manager-0.5.3.orig/debian/pycompat +++ virt-manager-0.5.3/debian/pycompat @@ -0,0 +1 @@ +2 --- virt-manager-0.5.3.orig/debian/rules +++ virt-manager-0.5.3/debian/rules @@ -0,0 +1,16 @@ +#!/usr/bin/make -f + +DEB_PYTHON_SYSTEM=pycentral +DEB_DH_INSTALL_SOURCEDIR = debian/tmp + +LDFLAGS += -Wl,--as-needed + +include /usr/share/cdbs/1/class/autotools.mk +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/class/makefile.mk +include /usr/share/cdbs/1/rules/patchsys-quilt.mk + +DEB_CONFIGURE_EXTRA_FLAGS := --prefix=/usr + +install/virt-manager:: + dh_gconf -p$(cdbs_curpkg) --- virt-manager-0.5.3.orig/debian/changelog +++ virt-manager-0.5.3/debian/changelog @@ -0,0 +1,141 @@ +virt-manager (0.5.3-0ubuntu9) hardy; urgency=low + + [ Jamie Strandboge ] + * debian/patches/virtio.patch: update create.py to update virtio flag for + disks and network interfaces + * debian/control: Depends on python-virtinst >= 0.300.2-0ubuntu4 + + [ Soren Hansen ] + * connection.py.patch: + - Fix bridge detection. Thanks to noddy for finding the patch! (LP: #192605) + + -- Soren Hansen Tue, 22 Apr 2008 01:55:06 +0200 + +virt-manager (0.5.3-0ubuntu8) hardy; urgency=low + + * Clean up: Use patches instead of editing stuff directly in the tree. + * Add Vcs-Bzr header to debian/control. + * Make the error message when failing to connect to the hypervisor more + helpful. (LP: #198957) + * Use separate libvirt connection when saving a domain. (LP: #201221) + * Detect magic string in saved qemu/kvm images. + + -- Soren Hansen Thu, 13 Mar 2008 10:07:03 +0100 + +virt-manager (0.5.3-0ubuntu7) hardy; urgency=low + + * Add patch from upstream to make it possible to choose boot device (LP: + #182050). + * Make the overview screen show which local qemu session, you're connected to. + + -- Soren Hansen Fri, 07 Mar 2008 08:52:15 +0100 + +virt-manager (0.5.3-0ubuntu6) hardy; urgency=low + + * Revert "Add usermode networking to the set of networking options". + Rejected by upstream. + * Add fix to make sure non privileged users get a network. + * Fix adding a bridged network after initial installation. + + -- Soren Hansen Fri, 18 Jan 2008 18:55:23 +0100 + +virt-manager (0.5.3-0ubuntu5) hardy; urgency=low + + * Add dh_gconf call to properly register the schemas. + + -- Soren Hansen Wed, 16 Jan 2008 11:16:36 +0100 + +virt-manager (0.5.3-0ubuntu4) hardy; urgency=low + + * Fix heuristic for detecting if you're a privileged user. + * Add usermode networking to the set of networking options. + + -- Soren Hansen Wed, 16 Jan 2008 09:38:36 +0100 + +virt-manager (0.5.3-0ubuntu3) hardy; urgency=low + + * Connect to console as the correct user when using +ssh:// type urls. + + -- Soren Hansen Tue, 15 Jan 2008 14:13:41 +0100 + +virt-manager (0.5.3-0ubuntu2) hardy; urgency=low + + * Made Ctrl+Alt+Delete work when connected to a VM. + * Added Ctrl-Alt-F9 to list of keys you can send to a VM (LP: #182067). + + -- Soren Hansen Sat, 12 Jan 2008 23:44:24 +0100 + +virt-manager (0.5.3-0ubuntu1) hardy; urgency=low + + * New upstream release + + -- Soren Hansen Fri, 11 Jan 2008 09:44:15 +0100 + +virt-manager (0.5.2-3ubuntu1) hardy; urgency=low + + * Change dependency on virtinst to python-virtinst. (LP: #179196) + * Modify Maintainer value to match the DebianMaintainerField + specification. + + -- Soren Hansen Mon, 07 Jan 2008 23:00:45 +0100 + +virt-manager (0.5.2-3) unstable; urgency=low + + * gconf-dir.diff: fix typo in datadir + * recommend hal for network device detection + * move to team maintenance + * drop ubuntu patches + * add a watch file + + -- Guido Guenther Tue, 11 Dec 2007 12:54:04 +0100 + +virt-manager (0.5.2-2) experimental; urgency=low + + * update debian/copyright (help/, src/grpahWidgets) + + -- Guido Guenther Fri, 23 Nov 2007 22:56:47 +0100 + +virt-manager (0.5.2-1) experimental; urgency=low + + * New Upstream Version + * first upload to Debian (Closes: #384443) + * debian/copyright: update URL and FSF address, add upstream authors + * update config.{sub,guess} + * set gconf-dir to /usr/share/gconf + * link with -Wl,--as-needed + * update description + * debhelper version 5 + * disable Ubuntu patches for now + * Thanks to Marcello for packaging this up! + + -- Guido Guenther Fri, 23 Nov 2007 16:18:58 +0100 + +virt-manager (0.5.0-0ubuntu0~ppa2) feisty; urgency=low + + * debian/patches: + - 01_vnc_connect_localhost.dpatch + - 02-fixed_call_to_get_local_hostname.dpatch + - 03-console_connection_retries_more_robust.dpatch + * Remove various Build-deps + + -- Marcelo Boveto Shima Sat, 15 Sep 2007 01:27:27 -0300 + +virt-manager (0.5.0-0ubuntu0~ppa1) feisty; urgency=low + + * New upstream release. + * Depends on python-libvirt, virtinst, python-gtk-vnc. + + -- Marcelo Boveto Shima Fri, 14 Sep 2007 18:53:12 -0300 + +virt-manager (0.4.0-0ubuntu0~ppa2) feisty; urgency=low + + * Change Architecture from all to any. + + -- Marcelo Boveto Shima Fri, 14 Sep 2007 16:05:12 -0300 + +virt-manager (0.4.0-0ubuntu0~ppa1) feisty; urgency=low + + * Initial release based on xenbr packages. + + -- Marcelo Boveto Shima Thu, 7 Jun 2007 01:08:24 -0300 + --- virt-manager-0.5.3.orig/debian/control +++ virt-manager-0.5.3/debian/control @@ -0,0 +1,26 @@ +Source: virt-manager +Section: admin +Priority: optional +Maintainer: Ubuntu MOTU Developers +XSBC-Original-Maintainer: Debian Libvirt Maintainers +Uploaders: Guido Guenther +Standards-Version: 3.7.3 +Build-Depends: debhelper (>= 5), python-dev, python-gtk2-dev, scrollkeeper, python-central (>= 0.5), cdbs, autotools-dev, quilt +Vcs-Bzr: http://bazaar.launchpad.net/~ubuntu-dev/virt-manager/packaging + +Package: virt-manager +Section: admin +Priority: optional +Architecture: any +Depends: ${shlibs:Depends}, ${python:Depends}, python-gtk2, python-glade2, python-gnome2, python-dbus, python-urlgrabber, python-vte, librsvg2-common, python-libvirt, python-virtinst (>= 0.300.2-0ubuntu4), python-gtk-vnc +Recommends: hal +Suggests: virt-viewer +Description: desktop application for managing virtual machines + It presents a summary view of running domains and their live performance & + resource utilization statistics. A detailed view presents graphs showing + performance & utilization over time. Ultimately it will allow creation of new + domains, and configuration & adjustment of a domain's resource allocation & + virtual hardware. Finally an embedded VNC client viewer presents a full + graphical console to the guest domain. + . + NOTE: the GUI is still considered experimental.