* SUNWvirt-manager.spec : Integrate virt-manager-0.6.1 to verm_121 gnome-2-26 NEVADA_121
authormattman
Thu, 30 Jul 2009 08:56:37 +0000
branchgnome-2-26
changeset 18836 26cd75f14d55
parent 18835 f112da9117e1
child 18837 62896d626c6c
* SUNWvirt-manager.spec : Integrate virt-manager-0.6.1 to verm_121 coinciding with integration of libvirt 0.6.0 by Xen team to snv_121. * base-specs/virt-manager.spec : Bump to 0.6.1 * manpages/man1/virt-manager.1 : Reworked. * patches/virt-manager-01-build-flags.diff : Re-Work * patches/virt-manager-02-serial-console.diff : Re-Work * patches/virt-manager-03-root-user.diff : New Patch * patches/virt-manager-04-min-storage-size.diff : New Patch * patches/virt-manager-05-open-connection.diff : New Patch * patches/virt-manager-06-connection-startup.diff : New Patch * patches/virt-manager-07-virtual-network.diff : New Patch * patches/virt-manager-08-dladm-network.diff : New Patch * patches/virt-manager-09-create-arch.diff : New Patch * patches/virt-manager-10-options-exit.diff : New Patch * patches/virt-manager-11-disable-remove-hardware.diff : New Patch * patches/virt-manager-12-storage-browse.diff : New Patch * patches/virt-manager-03-g11n-desktop.diff : Remove Old Patch * patches/virt-manager-04-temporary-patch.diff : Remove Old Patch * patches/virt-manager-05-host-about.diff : Remove Old Patch * patches/virt-manager-06-delete-button.diff : Remove Old Patch * patches/virt-manager-07-build.diff : Remove Old Patch * patches/virt-manager-08-filesize.diff : Remove Old Patch * patches/virt-manager-09-gtk-spin-button.diff : Remove Old Patch * patches/virt-manager-10-cdrom-disks.diff : Remove Old Patch
ChangeLog
SUNWvirt-manager.spec
base-specs/virt-manager.spec
manpages/man1/virt-manager.1
patches/virt-manager-01-build-flags.diff
patches/virt-manager-02-serial-console.diff
patches/virt-manager-03-g11n-desktop.diff
patches/virt-manager-03-root-user.diff
patches/virt-manager-04-min-storage-size.diff
patches/virt-manager-04-temporary-patch.diff
patches/virt-manager-05-host-about.diff
patches/virt-manager-05-open-connection.diff
patches/virt-manager-06-connection-startup.diff
patches/virt-manager-06-delete-button.diff
patches/virt-manager-07-build.diff
patches/virt-manager-07-virtual-network.diff
patches/virt-manager-08-dladm-network.diff
patches/virt-manager-08-filesize.diff
patches/virt-manager-09-create-arch.diff
patches/virt-manager-09-gtk-spin-button.diff
patches/virt-manager-10-cdrom-disks.diff
patches/virt-manager-10-options-exit.diff
patches/virt-manager-11-disable-remove-hardware.diff
patches/virt-manager-12-storage-browse.diff
--- a/ChangeLog	Thu Jul 30 06:44:58 2009 +0000
+++ b/ChangeLog	Thu Jul 30 08:56:37 2009 +0000
@@ -1,3 +1,30 @@
+2009-07-30  Matt Keenan <[email protected]>
+
+	* SUNWvirt-manager.spec : Integrate virt-manager-0.6.1 to verm_121
+	  coinciding with integration of libvirt 0.6.0 by Xen team to snv_121.
+	* base-specs/virt-manager.spec : Bump to 0.6.1
+	* manpages/man1/virt-manager.1 : Reworked.
+	* patches/virt-manager-01-build-flags.diff : Re-Work
+	* patches/virt-manager-02-serial-console.diff : Re-Work
+	* patches/virt-manager-03-root-user.diff : New Patch
+	* patches/virt-manager-04-min-storage-size.diff : New Patch
+	* patches/virt-manager-05-open-connection.diff : New Patch
+	* patches/virt-manager-06-connection-startup.diff : New Patch
+	* patches/virt-manager-07-virtual-network.diff : New Patch
+	* patches/virt-manager-08-dladm-network.diff : New Patch
+	* patches/virt-manager-09-create-arch.diff : New Patch
+	* patches/virt-manager-10-options-exit.diff : New Patch
+	* patches/virt-manager-11-disable-remove-hardware.diff : New Patch
+	* patches/virt-manager-12-storage-browse.diff : New Patch
+	* patches/virt-manager-03-g11n-desktop.diff : Remove Old Patch
+	* patches/virt-manager-04-temporary-patch.diff : Remove Old Patch
+	* patches/virt-manager-05-host-about.diff : Remove Old Patch
+	* patches/virt-manager-06-delete-button.diff : Remove Old Patch
+	* patches/virt-manager-07-build.diff : Remove Old Patch
+	* patches/virt-manager-08-filesize.diff : Remove Old Patch
+	* patches/virt-manager-09-gtk-spin-button.diff : Remove Old Patch
+	* patches/virt-manager-10-cdrom-disks.diff : Remove Old Patch
+
 2009-07-30  Abhijit Nath <[email protected]>
 
 	* SUNWPython.spec: bump to 2.4.6
--- a/SUNWvirt-manager.spec	Thu Jul 30 06:44:58 2009 +0000
+++ b/SUNWvirt-manager.spec	Thu Jul 30 08:56:37 2009 +0000
@@ -26,14 +26,12 @@
 # ===========================================
 
 %include default-depend.inc
-Requires: SUNWgtk2
 Requires: SUNWgnome-python-libs
 Requires: SUNWlibvirt
 Requires: SUNWvirtinst
 Requires: SUNWurlgrabber
 Requires: SUNWdesktop-cache
 Requires: %{name}-root
-BuildRequires: SUNWgtk2-devel
 BuildRequires: SUNWgnome-python-libs-devel
 
 %package root
@@ -41,6 +39,7 @@
 SUNW_BaseDir:            /
 %include default-depend.inc
 
+
 %if %build_l10n
 %package l10n
 Summary:                 %{summary} - l10n files
@@ -49,6 +48,7 @@
 Requires:                %{name}
 %endif
 
+
 %prep
 rm -rf %name-%version
 mkdir %name-%version
@@ -57,10 +57,12 @@
 cd %{_builddir}/%name-%version
 gzcat %SOURCE | tar xf -
 
+
 %build
 cd %{name}-%{version}
 %virtmanager.build
 
+
 %install
 rm -rf $RPM_BUILD_ROOT
 %virtmanager.install -d %name-%version
@@ -81,6 +83,7 @@
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+
 %post
 %restart_fmri gconf-cache
 
@@ -113,11 +116,13 @@
 %dir %attr(0755, root, bin) %{_mandir}
 %{_mandir}/*/*
 
+
 %files root
 %defattr (-, root, sys)
 %attr (0755, root, sys) %dir %{_sysconfdir}
 %{_sysconfdir}/gconf/schemas/virt-manager.schemas
 
+
 %if %build_l10n
 %files l10n
 %defattr (-, root, bin)
@@ -128,6 +133,7 @@
 # endif for "ifnarch sparc"
 %endif
 
+
 %changelog
 * Fri Apr  3 2009 - [email protected]
 - use desktop-cache instead of postrun
@@ -171,4 +177,3 @@
 - Add Build/Requires SUNWgnome-python-libs/-devel for pygtk.
 * Fri Dec  8 2006 - [email protected]
 - Initial version
-
--- a/base-specs/virt-manager.spec	Thu Jul 30 06:44:58 2009 +0000
+++ b/base-specs/virt-manager.spec	Thu Jul 30 08:56:37 2009 +0000
@@ -10,7 +10,7 @@
 #
 Name:         virt-manager
 Summary:      Virtual Machine Manager
-Version:      0.4.0
+Version:      0.6.1
 Release:      1
 License:      GPL v2, FDL v1.1
 Distribution: Java Desktop System
@@ -24,36 +24,52 @@
 URL:          http://virt-manager.et.redhat.com
 
 # date:2006-12-08 owner:dermot type:bug bugster:6530450
+# Remove linux specific build options
 Patch1:       virt-manager-01-build-flags.diff
 
-# date:2007-03-09 owner:dermot type:bug bugster:6530453 state:upstream into new version in Fedora
+# date:2007-03-09 owner:dermot type:bug bugster:6530453
+# Serial console font
 Patch2:       virt-manager-02-serial-console.diff
 
-# date:2007-08-16 owner:fujiwara type:bug bugster:6526323 bugzilla:229324
-Patch3:       virt-manager-03-g11n-desktop.diff
+# date:2009-04-17 owner:mattman type:feature bugster:6831444
+# Must be root user to run virt-manager
+Patch3:       virt-manager-03-root-user.diff
+
+# date:2009-04-17 owner:mattman type:feature bugster:6831444
+# Solaris min storage sizes differ from Linux
+Patch4:       virt-manager-04-min-storage-size.diff
 
-# This patch is mainly including some temporary patch to make virt-manager run with current xVM
-# date:2008-02-15 owner:henryz type:feature
-Patch4:       virt-manager-04-temporary-patch.diff
+# date:2009-04-17 owner:mattman type:feature bugster:6831444
+# Restrict remote/QEMU connection types
+Patch5:       virt-manager-05-open-connection.diff
 
-# date:2008-02-16 owner:henryz type:bug bugster:6664159 state:upstream into new version in Fedora
-Patch5:       virt-manager-05-host-about.diff
+# date:2009-04-17 owner:mattman type:feature bugster:6831444
+# If no connections exist, show connection startup dialog
+Patch6:       virt-manager-06-connection-startup.diff
+
+# date:2009-04-17 owner:mattman type:feature bugster:6831444
+# Virtual networks not supported, hide Network & Storage tabs for host view
+Patch7:       virt-manager-07-virtual-network.diff
 
-# date:2008-03-04 owner:henryz type:bug bugster:6665415 state:upstream into new version in Fedora
-# this fix has been in the trunk.
-Patch6:       virt-manager-06-delete-button.diff
+# date:2009-04-17 owner:mattman type:feature bugster:6831444
+# Network device detection linux specific, patch to use dladm on Solaris
+Patch8:       virt-manager-08-dladm-network.diff
 
-# date:2008-11-05 owner:fujiwara type:feature
-Patch7:       virt-manager-07-build.diff
+# date:2009-04-17 owner:mattman type:feature bugster:6831444
+# Specifically set arch when creating new VM
+Patch9:       virt-manager-09-create-arch.diff
 
-# date:2009-04-14 owner:mattman type:bug bugster:6829936
-Patch8:       virt-manager-08-filesize.diff
+# date:2009-04-17 owner:mattman type:feature bugster:6831444
+# --help CLI python crash bug
+Patch10:       virt-manager-10-options-exit.diff
 
-# date:2009-04-15 owner:mattman type:bug doo:8183
-Patch9:       virt-manager-09-gtk-spin-button.diff
+# date:2009-04-17 owner:mattman type:feature bugster:6831444
+# Disable Remove Hardware button when VM is active
+Patch11:       virt-manager-11-disable-remove-hardware.diff
 
-# date:2009-04-15 owner:mattman type:bug doo:8188
-Patch10:       virt-manager-10-cdrom-disks.diff
+# date:2009-04-17 owner:mattman type:feature bugster:6831444
+# When browsing for file storage, if folder specified attempt to browse there
+Patch12:       virt-manager-12-storage-browse.diff
 
 %description
 Virtual Machine Manager
@@ -70,7 +86,8 @@
 %patch8 -p1
 %patch9 -p1
 %patch10 -p1
-
+%patch11 -p1
+%patch12 -p1
 
 %build
 %ifos linux
@@ -94,7 +111,7 @@
 
 aclocal $ACLOCAL_FLAGS -I ./m4
 libtoolize --force
-automake
+automake -a -c -f
 autoconf
 ./configure   --prefix=%{_prefix}          \
               --sysconfdir=%{_sysconfdir}  \
@@ -123,6 +140,9 @@
 %{_libexecdir}/virt-manager-launch
 
 %changelog
+* Fri Apr 17 2009 - [email protected]
+- Bump to 0.6.1
+- Remove lots of patches and add lots of new ones
 * Wed Apr 15 2009 - [email protected]
 - Add patch 10-cdrom-disks.diff, fix doo:8188
 * Wed Apr 15 2009 - [email protected]
--- a/manpages/man1/virt-manager.1	Thu Jul 30 06:44:58 2009 +0000
+++ b/manpages/man1/virt-manager.1	Thu Jul 30 08:56:37 2009 +0000
@@ -1,6 +1,7 @@
 <!DOCTYPE REFENTRY PUBLIC "-//Sun Microsystems//DTD DocBook V3.0-Based SolBook Subset V2.0//EN" [
 <!--ArborText, Inc., 1988-1999, v.4002-->
 <!--ARC : LSARC 2007/175 - Virtual Machine Manager-->
+<!--ARC : LSARC 2009/243 - virt-manager upgrade-->
 <!ENTITY cmd "virt-manager">
 <!ENTITY % commonents SYSTEM "smancommon.ent">
 %commonents;
@@ -21,13 +22,17 @@
 </refmeta>
 <indexterm><primary>virt-manager</primary></indexterm>
 <indexterm><primary>Virtual Machine Manager</primary></indexterm>
-<refnamediv id="virt-manager-1-name"><refname>virt-manager</refname>
+<refnamediv id="virt-manager-1-name"><refname>&cmd;</refname>
 <refpurpose>Desktop application for managing virtual machines</refpurpose></refnamediv>
 <refsynopsisdiv id="virt-manager-1-synp"><title>&synp-tt;</title>
 <cmdsynopsis><command>&cmd;</command>
 <arg choice="opt"><option role="nodash"><replaceable>-h, --help</replaceable></option></arg>
 <arg choice="opt"><option role="nodash"><replaceable>--profile=FILE</replaceable></option></arg>
+<arg choice="opt"><option role="nodash"><replaceable>-c URI, --connect=URI</replaceable></option></arg>
+<arg choice="opt"><option role="nodash"><replaceable>--debug</replaceable></option></arg>
 <arg choice="opt"><option role="nodash"><replaceable>--no-dbus</replaceable></option></arg>
+<arg choice="opt"><option role="nodash"><replaceable>--no-fork</replaceable></option></arg>
+<arg choice="opt"><option role="nodash"><replaceable>--no-conn-autostart</replaceable></option></arg>
 <arg choice="opt"><option role="nodash"><replaceable>--show-domain-creator</replaceable></option></arg>
 <arg choice="opt"><option role="nodash"><replaceable>--show-domain-editor=UUID</replaceable></option></arg>
 <arg choice="opt"><option role="nodash"><replaceable>--show-domain-performance=UUID</replaceable></option></arg>
@@ -36,15 +41,14 @@
 </cmdsynopsis></refsynopsisdiv>
 
 <refsect1 id="virt-manager-1-desc"><title>&desc-tt;</title>
-<para>The "Virtual Machine Manager" (virt-manager for short 
-package name) is a desktop application for managing virtual 
-machines.  </para>
-<para>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.</para>
-<para>You need root right to run virt-manager. </para></refsect1>
+<para>The "Virtual Machine Manager" (&cmd;) is a desktop application for
+managing virtual machines.  </para>
+<para>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. An embedded VNC client viewer presents a full graphical console to the guest domain.</para>
+<para>You need root access to run &cmd;. </para></refsect1>
 
 <refsect1 id="virt-manager-1-opts"><title>&opts-tt;</title>
 <para>The following options are supported:</para>
-<variablelist termlength="narrow">
+<variablelist termlength="large">
     <varlistentry>
       <term><option>-h, --help</option></term>
       <listitem>
@@ -67,13 +71,35 @@
     </varlistentry>
 
     <varlistentry>
-      <term><option>--no-dbus </option></term>
+      <term><option>--debug</option></term>
+      <listitem>
+        <para>Print debug output to stdout. Requires --no-fork option.</para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term><option>--no-dbus</option></term>
       <listitem>
         <para>Disable DBus service for controlling UI.</para>
       </listitem>
     </varlistentry>
 
     <varlistentry>
+      <term><option>--no-fork</option></term>
+      <listitem>
+        <para>Don't fork into background on startup.</para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term><option>--no-conn-autostart</option></term>
+      <listitem>
+        <para>Do not autostart connections.</para>
+      </listitem>
+    </varlistentry>
+
+
+    <varlistentry>
       <term><option>--show-domain-creator</option></term>
       <listitem>
         <para>Create a new virtual machine.</para>
@@ -116,7 +142,7 @@
 </example>
 
 <example role="example">
-<title>Show option information for virt-manager</title>
+<title>Show option information for &cmd;</title>
 <para><screen>example% <userinput>&cmd; -h</userinput></screen></para>
 </example>
 </refsect1>
@@ -143,17 +169,17 @@
    </varlistentry>
 
     <varlistentry>
-      <term><filename>$HOME/.virt-manager/virt-manager.log</filename></term>
+      <term><filename>$HOME/.&cmd;/&cmd;.log</filename></term>
       <listitem>
         <para></para>
-        <para>Used to store the log for virt-manager.</para>
+        <para>Used to store the log for &cmd;.</para>
       </listitem>
     </varlistentry>
 
     <varlistentry>
-      <term><filename>/usr/share/virt-manager/*</filename></term>
+      <term><filename>/usr/share/&cmd;/*</filename></term>
       <listitem>
-        <para>All of the python source codes are stored here.</para>
+        <para>&cmd; Python source code.</para>
       </listitem>
     </varlistentry>
 </variablelist></refsect1>
@@ -184,14 +210,17 @@
 <!--Reference to a Help manual-->
 <!--Reference to a book.-->
 <para>
-<citerefentry><refentrytitle>virt-inst</refentrytitle></citerefentry>,
+<citerefentry><refentrytitle>virt-install</refentrytitle><manvolnum>1M</manvolnum></citerefentry>,
+<citerefentry><refentrytitle>virt-clone</refentrytitle><manvolnum>1M</manvolnum></citerefentry>,
 <citerefentry><refentrytitle>virsh</refentrytitle><manvolnum>1M</manvolnum></citerefentry>,
+<citerefentry><refentrytitle>vdiskadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry>,
 <citerefentry><refentrytitle>xm</refentrytitle><manvolnum>1M</manvolnum></citerefentry>
 </para>
 </refsect1>
 
 <refsect1 id="virt-manager-1-note"><title>&note-tt;</title>
 <para>Written by Henry Zhang, Sun Microsystems Inc., 2007.</para>
+<para>Amended by Matt Keenan, Sun Microsystems Inc., 2009.</para>
 </refsect1>
 </refentry>
 <?Pub *0000004990>
--- a/patches/virt-manager-01-build-flags.diff	Thu Jul 30 06:44:58 2009 +0000
+++ b/patches/virt-manager-01-build-flags.diff	Thu Jul 30 08:56:37 2009 +0000
@@ -1,6 +1,7 @@
---- virt-manager-0.2.6-old/src/graphWidgets/Makefile.am	2007-01-10 15:40:48.828149400 +0000
-+++ virt-manager-0.2.6/src/graphWidgets/Makefile.am	2007-01-10 15:36:43.206617800 +0000
-@@ -24,7 +24,7 @@
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/graphWidgets/Makefile.am virt-manager-0.6.1/src/graphWidgets/Makefile.am
+--- virt-manager-0.6.1.old/src/graphWidgets/Makefile.am	2009-03-27 15:57:51.797858431 +0000
++++ virt-manager-0.6.1/src/graphWidgets/Makefile.am	2009-03-27 16:01:58.116512926 +0000
+@@ -24,7 +24,7 @@ sparkline_la_SOURCES = \
      sparkline.c \
      sparkline.h
  
@@ -9,11 +10,14 @@
      -DUSE_CAIRO=1 \
      $(PYGTK2_CFLAGS) \
      $(GTK2_CFLAGS) \
---- virt-manager-0.2.6-old/po/Makefile.am	2006-12-08 17:34:16.856940000 +0000
-+++ virt-manager-0.2.6/po/Makefile.am	2006-12-08 17:36:46.237062000 +0000
-@@ -80,4 +80,4 @@
- 	done
+/jds/bin/diff -uprN virt-manager-0.6.1.old/Makefile.am virt-manager-0.6.1/Makefile.am
+--- virt-manager-0.6.1.old/Makefile.am	2009-03-27 18:08:24.278066236 +0000
++++ virt-manager-0.6.1/Makefile.am	2009-03-27 18:08:34.356545486 +0000
+@@ -1,6 +1,6 @@
+ ACLOCAL_AMFLAGS = -I m4/
  
- %.mo: %.po
--	msgfmt --check -o $@ $<
-+	msgfmt -o $@ $<
+-SUBDIRS = src pixmaps man po help
++SUBDIRS = src pixmaps po help
+ 
+ EXTRA_DIST = @[email protected] COPYING-DOCS xmldocs.make omf.make \
+ 	intltool-extract.in intltool-merge.in intltool-update.in
--- a/patches/virt-manager-02-serial-console.diff	Thu Jul 30 06:44:58 2009 +0000
+++ b/patches/virt-manager-02-serial-console.diff	Thu Jul 30 08:56:37 2009 +0000
@@ -1,38 +1,13 @@
---- virt-manager-0.4.0/src/virtManager/serialcon.py	2008-01-21 22:27:00.964332000 +0800
-+++ virt-manager-0.4.0.mod.1-2-3/src/virtManager/serialcon.py	2009-02-10 16:17:37.411540000 +0800
-@@ -23,6 +23,7 @@ import os
- import gobject
- import termios
- import tty
-+import pty
- 
- class vmmSerialConsole:
-     def __init__(self, config, vm):
-@@ -37,7 +38,9 @@ class vmmSerialConsole:
- 	self.terminal = vte.Terminal()
- 	self.terminal.set_cursor_blinks(True)
- 	self.terminal.set_emulation("xterm")
--	self.terminal.set_font_from_string("fixed 10")
-+	#self.terminal.set_font_from_string("fixed 10")
-+        #Change the code mode to monospace, so the display is look better
-+	self.terminal.set_font_from_string("monospace 10")
- 	self.terminal.set_scrollback_lines(1000)
- 	self.terminal.set_audible_bell(False)
- 	self.terminal.set_visible_bell(True)
-@@ -82,11 +85,13 @@ class vmmSerialConsole:
-     def opentty(self):
-         if self.ptyio != None:
-             self.closetty()
--        pty = self.vm.get_serial_console_tty()
-+        ipty = self.vm.get_serial_console_tty()
- 
--        if pty == None:
-+        if ipty == None:
-             return
--        self.ptyio = os.open(pty, os.O_RDWR | os.O_NONBLOCK | os.O_NOCTTY)
-+	# delete, because it can't run at Solaris correctly.
-+        #self.ptyio = os.open(pty, os.O_RDWR | os.O_NONBLOCK | os.O_NOCTTY) 
-+	self.ptyio = pty.slave_open(ipty)
-         self.ptysrc = gobject.io_add_watch(self.ptyio, gobject.IO_IN | gobject.IO_ERR | gobject.IO_HUP, self.display_data)
- 
-         # Save term settings & set to raw mode
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virtManager/serialcon.py virt-manager-0.6.1/src/virtManager/serialcon.py
+--- virt-manager-0.6.1.old/src/virtManager/serialcon.py	2009-03-27 16:03:44.972167821 +0000
++++ virt-manager-0.6.1/src/virtManager/serialcon.py	2009-03-27 16:05:58.404282523 +0000
+@@ -39,7 +39,8 @@ class vmmSerialConsole(gtk.HBox):
+         self.terminal = vte.Terminal()
+         self.terminal.set_cursor_blinks(True)
+         self.terminal.set_emulation("xterm")
+-        self.terminal.set_font_from_string("fixed 10")
++        # Monospace looks better than fixed
++        self.terminal.set_font_from_string("monospace 10")
+         self.terminal.set_scrollback_lines(1000)
+         self.terminal.set_audible_bell(False)
+         self.terminal.set_visible_bell(True)
--- a/patches/virt-manager-03-g11n-desktop.diff	Thu Jul 30 06:44:58 2009 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-diff -urNp virt-manager-0.4.0-orig/configure.ac virt-manager-0.4.0/configure.ac
---- virt-manager-0.4.0-orig/configure.ac	2007-08-16 18:08:02.674283000 +0900
-+++ virt-manager-0.4.0/configure.ac	2007-08-16 18:09:03.100696000 +0900
-@@ -20,6 +20,8 @@ dnl ====================================
- dnl = End tests for scrollkeeper
- dnl ====================================
- 
-+AC_PROG_INTLTOOL([0.35.0])
-+
- AC_OUTPUT(Makefile
-           pixmaps/Makefile
-           po/Makefile
-diff -urNp virt-manager-0.4.0-orig/src/Makefile.am virt-manager-0.4.0/src/Makefile.am
---- virt-manager-0.4.0-orig/src/Makefile.am	2007-08-16 18:08:02.672772000 +0900
-+++ virt-manager-0.4.0/src/Makefile.am	2007-08-16 18:09:03.107207000 +0900
-@@ -15,8 +15,9 @@ gladedir = $(pkgdatadir)
- glade_DATA = $(wildcard $(srcdir)/*.glade)
- 
- desktopdir = $(datadir)/applications
--desktop_SOURCES = $(PACKAGE).desktop.in
-+desktop_SOURCES = $(PACKAGE).desktop.in.in
- desktop_DATA = $(PACKAGE).desktop
-+@INTLTOOL_DESKTOP_RULE@
- 
- dbusdir = $(datadir)/dbus-1/services
- dbus_SOURCES = $(PACKAGE).service.in
-@@ -31,7 +32,7 @@ CLEANFILES = $(bin_SCRIPTS) $(desktop_DA
- EXTRA_DIST = $(bin_SOURCES) $(desktop_SOURCES) $(dbus_SOURCES) $(python_SOURCES) $(glade_DATA) $(libexec_SOURCES) $(schema_SOURCES)
- 
- 
--%.desktop: $(srcdir)/%.desktop.in
-+%.desktop.in: $(srcdir)/%.desktop.in.in
- 	sed -e "s,::PACKAGE::,$(PACKAGE)," -e "s,::ICONDIR::,$(pkgdatadir)/pixmaps," < $< > $@
- 
- %.service: $(srcdir)/%.service.in
-diff -urNp virt-manager-0.4.0-orig/src/virt-manager.desktop.in virt-manager-0.4.0/src/virt-manager.desktop.in
---- virt-manager-0.4.0/src/virt-manager.desktop.in.in.orig	1970-01-01 09:00:00.000000000 +0900
-+++ virt-manager-0.4.0/src/virt-manager.desktop.in.in	2007-08-16 18:09:03.121663000 +0900
-@@ -0,0 +1,9 @@
-+[Desktop Entry]
-+_Name=Virtual Machine Manager
-+_Comment=The virtual machine management tool
-+Icon=::ICONDIR::/::PACKAGE::-icon.svg
-+Exec=::PACKAGE::
-+Type=Application
-+Terminal=false
-+Encoding=UTF-8
-+Categories=System;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/virt-manager-03-root-user.diff	Thu Jul 30 08:56:37 2009 +0000
@@ -0,0 +1,52 @@
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virt-manager.desktop.in.in virt-manager-0.6.1/src/virt-manager.desktop.in.in
+--- virt-manager-0.6.1.old/src/virt-manager.desktop.in.in	2009-03-27 16:03:44.969241826 +0000
++++ virt-manager-0.6.1/src/virt-manager.desktop.in.in	2009-03-27 16:08:48.004405926 +0000
+@@ -2,7 +2,7 @@
+ _Name=Virtual Machine Manager
+ _Comment=Manage virtual machines
+ Icon=::ICONDIR::/::PACKAGE::-icon.svg
+-Exec=::PACKAGE::
++Exec=gksu ::PACKAGE::
+ Type=Application
+ Terminal=false
+ Encoding=UTF-8
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virt-manager.py.in virt-manager-0.6.1/src/virt-manager.py.in
+--- virt-manager-0.6.1.old/src/virt-manager.py.in	2009-01-26 19:33:33.000000000 +0000
++++ virt-manager-0.6.1/src/virt-manager.py.in	2009-04-21 12:10:17.353381417 +0100
+@@ -48,10 +48,10 @@ pylib_dir = "::PYLIBDIR::"
+ pyarchlib_dir = "::PYARCHLIBDIR::"
+ data_dir = "::DATADIR::"
+ 
+-def _show_startup_error(msg, details):
++def _show_startup_error(msg, details=None):
+     import gtk
+     from virtManager.error import vmmErrorDialog
+-    err = vmmErrorDialog(None, 0, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, "", "")
++    err = vmmErrorDialog(None, 0, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, "", details)
+     title = _("Error starting Virtual Machine Manager")
+     err.show_err(title + ": " +  msg, details, title, async=False)
+ 
+@@ -267,6 +267,10 @@ def main():
+     setup_i18n()
+     setup_pypath()
+ 
++    if os.getuid() != 0:
++        _show_startup_error("Could not run virt-manager, not root")
++        os._exit(1)
++
+     (options, ignore) = parse_commandline()
+     setup_logging(options.debug)
+ 
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virtManager/error.py virt-manager-0.6.1/src/virtManager/error.py
+--- virt-manager-0.6.1.old/src/virtManager/error.py	2009-01-26 19:33:33.000000000 +0000
++++ virt-manager-0.6.1/src/virtManager/error.py	2009-04-21 12:09:24.633344593 +0100
+@@ -72,7 +72,8 @@ class vmmErrorDialog (gtk.MessageDialog)
+             title = self.default_title
+         self.set_title(title)
+         self.set_property("text", summary)
+-        self.buffer.set_text(details)
++        if details != None:
++            self.buffer.set_text(details)
+         logging.debug("Uncaught Error: %s : %s" % (summary, details))
+ 
+         if async:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/virt-manager-04-min-storage-size.diff	Thu Jul 30 08:56:37 2009 +0000
@@ -0,0 +1,29 @@
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virtManager/create.py virt-manager-0.6.1/src/virtManager/create.py
+--- virt-manager-0.6.1.old/src/virtManager/create.py	2009-03-31 16:47:36.593318874 +0100
++++ virt-manager-0.6.1/src/virtManager/create.py	2009-03-31 16:49:58.718880341 +0100
+@@ -261,9 +261,13 @@ class vmmCreate(gobject.GObject):
+         self.window.get_widget("storage-file-backed").set_active(True)
+         self.window.get_widget("storage-partition-address").set_text("")
+         self.window.get_widget("storage-file-address").set_text("")
+-        self.window.get_widget("storage-file-size").set_value(4000)
+-        self.window.get_widget("create-memory-max").set_value(512)
+-        self.window.get_widget("create-memory-startup").set_value(512)
++
++        # Min storage file size on solaris 9G
++        self.window.get_widget("storage-file-size").set_value(9120)
++        # Min memory on solaris 1G
++        self.window.get_widget("create-memory-max").set_value(1024)
++        self.window.get_widget("create-memory-startup").set_value(1024)
++
+         self.window.get_widget("create-vcpus").set_value(1)
+         self.window.get_widget("create-vcpus").get_adjustment().upper = self.connection.get_max_vcpus()
+         self.window.get_widget("non-sparse").set_active(True)
+@@ -796,7 +800,7 @@ class vmmCreate(gobject.GObject):
+             self.window.get_widget("non-sparse").set_sensitive(True)
+             size = self.get_config_disk_size()
+             if size == None:
+-                size = 4000
++                size = 9120
+             self.window.get_widget("storage-file-size").set_value(size)
+         else:
+             self.window.get_widget("storage-file-size").set_sensitive(False)
--- a/patches/virt-manager-04-temporary-patch.diff	Thu Jul 30 06:44:58 2009 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,595 +0,0 @@
-diff -Nrup virt-manager-0.4.0.mod.1-2-3/src/virt-manager.desktop.in virt-manager-0.4.0.mod.4/src/virt-manager.desktop.in
---- virt-manager-0.4.0.mod.1-2-3/src/virt-manager.desktop.in	2008-02-15 17:38:58.000000000 +0800
-+++ virt-manager-0.4.0.mod.4/src/virt-manager.desktop.in	2008-05-13 11:33:54.796076000 +0800
-@@ -1,8 +1,8 @@
- [Desktop Entry]
- Name=Virtual Machine Manager
- Comment=The virtual machine management tool
--Icon=::ICONDIR::/::PACKAGE::-icon.svg
--Exec=::PACKAGE::
-+Icon=/usr/share/virt-manager/pixmaps/virt-manager-icon.svg
-+Exec=gksu virt-manager
- Type=Application
- Terminal=false
- Encoding=UTF-8
-diff -Nrup virt-manager-0.4.0.mod.1-2-3/src/virt-manager.desktop.in.in virt-manager-0.4.0.mod.4/src/virt-manager.desktop.in.in
---- virt-manager-0.4.0.mod.1-2-3/src/virt-manager.desktop.in.in	2008-02-15 17:38:58.000000000 +0800
-+++ virt-manager-0.4.0.mod.4/src/virt-manager.desktop.in.in	2008-05-13 11:33:29.555366000 +0800
-@@ -1,8 +1,8 @@
- [Desktop Entry]
- _Name=Virtual Machine Manager
- _Comment=The virtual machine management tool
--Icon=::ICONDIR::/::PACKAGE::-icon.svg
--Exec=::PACKAGE::
-+Icon=/usr/share/virt-manager/pixmaps/virt-manager-icon.svg
-+Exec=gksu virt-manager
- Type=Application
- Terminal=false
- Encoding=UTF-8
-diff -Nrup virt-manager-0.4.0.mod.1-2-3/src/virt-manager.py.in virt-manager-0.4.0.mod.4/src/virt-manager.py.in
---- virt-manager-0.4.0.mod.1-2-3/src/virt-manager.py.in	2008-02-15 17:38:58.000000000 +0800
-+++ virt-manager-0.4.0.mod.4/src/virt-manager.py.in	2008-05-13 11:26:29.600878000 +0800
-@@ -34,6 +34,10 @@ locale.setlocale(locale.LC_ALL, '')
- gettext.install(gettext_app, gettext_dir)
- gettext.bindtextdomain(gettext_app, gettext_dir)
- 
-+# Check to see if have root right
-+if os.getuid() != 0:
-+    raise RuntimeError, "Could not run virt-manager, not root"
-+
- # set up logging
- vm_dir = os.path.expanduser("~/.virt-manager")
- if not os.access(vm_dir,os.W_OK):
-diff -Nrup virt-manager-0.4.0.mod.1-2-3/src/virtManager/addhardware.py virt-manager-0.4.0.mod.4/src/virtManager/addhardware.py
---- virt-manager-0.4.0.mod.1-2-3/src/virtManager/addhardware.py	2008-02-15 17:38:58.000000000 +0800
-+++ virt-manager-0.4.0.mod.4/src/virtManager/addhardware.py	2008-02-16 16:09:43.588738000 +0800
-@@ -163,6 +163,13 @@ class vmmAddHardware(gobject.GObject):
-         text = gtk.CellRendererText()
-         network_list.pack_start(text, True)
-         network_list.add_attribute(text, 'text', 1)
-+        # since we don't support virtula network,
-+	# let's de-active/de-sensitive network, and active device.
-+        self.window.get_widget("net-type-network").set_active(False)
-+        self.window.get_widget("net-type-network").set_sensitive(False)
-+        self.window.get_widget("net-type-device").set_active(True)
-+        self.window.get_widget("net-network").set_sensitive(False)
-+        self.window.get_widget("net-network").set_active(False)
- 
-         device_list = self.window.get_widget("net-device")
-         device_model = gtk.ListStore(str)
-diff -Nrup virt-manager-0.4.0.mod.1-2-3/src/virtManager/connection.py virt-manager-0.4.0.mod.4/src/virtManager/connection.py
---- virt-manager-0.4.0.mod.1-2-3/src/virtManager/connection.py	2008-02-15 17:38:58.000000000 +0800
-+++ virt-manager-0.4.0.mod.4/src/virtManager/connection.py	2008-08-28 16:04:10.839933000 +0800
-@@ -26,6 +26,7 @@ from time import time
- import logging
- from socket import gethostbyaddr, gethostname
- import dbus
-+import re
- 
- from virtManager.domain import vmmDomain
- from virtManager.network import vmmNetwork
-@@ -100,7 +101,10 @@ class vmmConnection(gobject.GObject):
-             self.hal_iface.connect_to_signal("DeviceRemoved", self._device_removed)
- 
-             # Find info about all current present media
--            for path in self.hal_iface.FindDeviceByCapability("net"):
-+	    # There is no support for network devices from HAL
-+	    # so I have to parse dladm/ifconfig to get the possible information
-+	    output0=os.popen("/usr/sbin/dladm show-link -p -o LINK")
-+            for path in output0.readlines():
-                 self._device_added(path)
-         except:
-             (type, value, stacktrace) = sys.exc_info ()
-@@ -111,6 +115,71 @@ class vmmConnection(gobject.GObject):
-             self.hal_iface = None
- 
-     def _device_added(self, path):
-+        # Since dladm output format is changed from SNV96,
-+        # so I have to change the parsing codes accordingly here.
-+        if not self.netdevs.has_key(path):
-+            name = path.split('\n')[0]
-+            shared = False
-+            mac = None
-+            bridge = name
-+
-+            output=os.popen("/sbin/ifconfig -a")
-+            line = output.readline()
-+            while len(line) != 0 :
-+                if line[0] != ' ' and line[0] != ' ' :
-+                    if (re.search(name,line) != None) and (re.search("IPv4", line) !=None):
-+                        while True:
-+                            line = output.readline()
-+                            if re.search("ether", line) != None:
-+                                mac = line.split(' ')[1]
-+                                shared = True
-+                                line = output.readline()
-+                                break
-+                    else:
-+                        line = output.readline()
-+                else:
-+                    line = output.readline()
-+
-+            dev = vmmNetDevice(self.config, self, name, mac, shared, bridge)
-+            self.netdevs[path] = dev
-+            self.emit("netdev-added", dev.get_name())
-+
-+        """
-+        # Since clearview is integrated into SNV83, and dladm output format changed,
-+        # so I have to change the parsing codes accordingly here.
-+        if not self.netdevs.has_key(path):
-+            #print "dladm output: " + path
-+            name = path.split('"')[1]
-+            shared = False
-+            mac = None
-+            bridge = name
-+            #print "name is " + name
-+
-+            output=os.popen("/sbin/ifconfig -a")
-+            line = output.readline()
-+            while len(line) != 0 :
-+                if line[0] != ' ' and line[0] != ' ' :
-+                    if re.search(name,line) != None:
-+                        while True:
-+                            line = output.readline()
-+                            if re.search("ether", line) != None:
-+                                mac = line.split(' ')[1]
-+                                shared = True
-+                                line = output.readline()
-+                                break
-+                    else:
-+                        line = output.readline()
-+                else:
-+                    line = output.readline()
-+
-+            dev = vmmNetDevice(self.config, self, name, mac, shared, bridge)
-+            self.netdevs[path] = dev
-+            self.emit("netdev-added", dev.get_name())
-+        """
-+
-+        """
-+        # let's remove these codes, they are Linux special, 
-+        # At solaris no HAL support for network to get name/mac
-         obj = self.bus.get_object("org.freedesktop.Hal", path)
-         if obj.QueryCapability("net"):
-             if not self.netdevs.has_key(path):
-@@ -144,11 +213,34 @@ class vmmConnection(gobject.GObject):
-                     logging.error("Unable to determine if device is shared:" +
-                                   str(type) + " " + str(value) + "\n" + \
-                                   traceback.format_exc (stacktrace))
--
--                dev = vmmNetDevice(self.config, self, name, mac, shared, bridge)
--                self.netdevs[path] = dev
--                self.emit("netdev-added", dev.get_name())
--
-+        """
-+        """
-+        # These codes used to parse the dladm output at and before SNV82
-+        if re.search("legacy",path) == None and re.search("vnic", path) == None:
-+            if not self.netdevs.has_key(path):
-+                name = path.split(' ')[0]
-+                shared = False
-+                mac = None
-+                bridge = name
-+                #print "name is " + name
-+
-+                output=os.popen("/sbin/ifconfig -a")
-+                line = output.readline()
-+                while len(line) != 0 :
-+                    if line[0] != ' ' and line[0] != ' ' :
-+                        if re.search(name,line) != None:
-+                            while True:
-+                                line = output.readline()
-+                                if re.search("ether", line) != None:
-+                                    mac = line.split(' ')[1]
-+                                    shared = True
-+                                    line = output.readline()
-+                                    break
-+                        else:
-+                            line = output.readline()
-+                    else:
-+                        line = output.readline()
-+        """
-     def _device_removed(self, path):
-         if self.netdevs.has_key(path):
-             dev = self.netdevs[path]
-diff -Nrup virt-manager-0.4.0.mod.1-2-3/src/virtManager/console.py virt-manager-0.4.0.mod.4/src/virtManager/console.py
---- virt-manager-0.4.0.mod.1-2-3/src/virtManager/console.py	2008-02-15 17:38:58.000000000 +0800
-+++ virt-manager-0.4.0.mod.4/src/virtManager/console.py	2008-03-19 10:52:13.953187000 +0800
-@@ -433,11 +433,21 @@ class vmmConsole(gobject.GObject):
-             self.window.get_widget("menu-vm-shutdown").set_sensitive(False)
-             self.window.get_widget("menu-vm-save").set_sensitive(False)
-         else:
--            self.window.get_widget("control-pause").set_sensitive(True)
-+            #self.window.get_widget("control-pause").set_sensitive(True)
-+            self.window.get_widget("control-pause").set_sensitive(False)
-             self.window.get_widget("control-shutdown").set_sensitive(True)
--            self.window.get_widget("menu-vm-pause").set_sensitive(True)
-+            #self.window.get_widget("menu-vm-pause").set_sensitive(True)
-+            self.window.get_widget("menu-vm-pause").set_sensitive(False)
-             self.window.get_widget("menu-vm-shutdown").set_sensitive(True)
-             self.window.get_widget("menu-vm-save").set_sensitive(True)
-+            # should be ok directly change save to disable, because only hvm run this console
-+            """
-+            if vm.is_hvm():
-+                self.window.get_widget("menu-vm-save").set_sensitive(False)
-+            else:
-+                self.window.get_widget("menu-vm-save").set_sensitive(True)
-+            """
-+
-             if status == libvirt.VIR_DOMAIN_PAUSED:
-                 self.window.get_widget("control-pause").set_active(True)
-                 self.window.get_widget("menu-vm-pause").set_active(True)
-diff -Nrup virt-manager-0.4.0.mod.1-2-3/src/virtManager/create.py virt-manager-0.4.0.mod.4/src/virtManager/create.py
---- virt-manager-0.4.0.mod.1-2-3/src/virtManager/create.py	2008-02-15 17:38:58.000000000 +0800
-+++ virt-manager-0.4.0.mod.4/src/virtManager/create.py	2008-02-16 16:09:43.587916000 +0800
-@@ -205,6 +205,13 @@ class vmmCreate(gobject.GObject):
-         text = gtk.CellRendererText()
-         network_list.pack_start(text, True)
-         network_list.add_attribute(text, 'text', 1)
-+        # since we don't support virtula network,
-+	# let's de-active/de-sensitive network, and active device.
-+        self.window.get_widget("net-type-network").set_active(False)
-+        self.window.get_widget("net-type-network").set_sensitive(False)
-+        self.window.get_widget("net-type-device").set_active(True)
-+        self.window.get_widget("net-network").set_sensitive(False)
-+        self.window.get_widget("net-network").set_active(False)
- 
-         device_list = self.window.get_widget("net-device")
-         device_model = gtk.ListStore(str)
-@@ -290,9 +297,12 @@ class vmmCreate(gobject.GObject):
-             self.window.get_widget("storage-file-backed").set_active(True)
-         self.window.get_widget("storage-partition-address").set_text("")
-         self.window.get_widget("storage-file-address").set_text("")
--        self.window.get_widget("storage-file-size").set_value(2000)
--        self.window.get_widget("create-memory-max").set_value(500)
--        self.window.get_widget("create-memory-startup").set_value(500)
-+        #self.window.get_widget("storage-file-size").set_value(2000)
-+	# in solaris, in order to create solaris guest, need mini storage about 9G
-+        self.window.get_widget("storage-file-size").set_value(9120)
-+	#at Solaris, in order to create solaris guest, need at least 1G memory
-+        self.window.get_widget("create-memory-max").set_value(1024)
-+        self.window.get_widget("create-memory-startup").set_value(1024)
-         self.window.get_widget("create-vcpus").set_value(1)
-         self.window.get_widget("non-sparse").set_active(True)
-         model = self.window.get_widget("pv-media-url").get_model()
-@@ -304,8 +314,9 @@ class vmmCreate(gobject.GObject):
-         self.populate_os_type_model()
-         self.window.get_widget("os-type").set_active(-1)
- 
--        model = self.window.get_widget("net-network").get_model()
--        self.populate_network_model(model)
-+        #Since we not support virtual network, let's remove them
-+        #model = self.window.get_widget("net-network").get_model()
-+        #self.populate_network_model(model)
-         device = self.window.get_widget("net-device").get_model()
-         self.populate_device_model(device)
-         self.install_error = None
-@@ -584,6 +595,8 @@ class vmmCreate(gobject.GObject):
-         net = self.get_config_network()
-         if net[0] == "bridge":
-             guest.nics.append(virtinst.VirtualNetworkInterface(type=net[0], bridge=net[1]))
-+	# Ignore: since we don't use bridge at Solaris, so let's just give it None, and virtinst will setup default one.
-+        #    guest.nics.append(virtinst.VirtualNetworkInterface(type=net[0], bridge=None))
-         elif net[0] == "network":
-             guest.nics.append(virtinst.VirtualNetworkInterface(type=net[0], network=net[1]))
-         elif net[0] == "user":
-@@ -609,7 +622,14 @@ class vmmCreate(gobject.GObject):
-                     if keytable.keytable.has_key(kt):
-                         keymap = keytable.keytable[kt]
-             f.close
--        guest.graphics = (True, "vnc", vncport, keymap)
-+	# since we have not vnc frame buffer support at the moment,
-+	# so can't run graphical console in para-virt
-+	# let's miss graphics in guest, so in install_xml miss it
-+	# and serial console will run instead of graphical console. zhua
-+        if self.get_config_method() == VM_FULLY_VIRT:
-+            guest.graphics = (True, "vnc", vncport, keymap)
-+        else:
-+            guest.graphics = (False, "vnc", vncport, keymap)
- 
-         logging.debug("Creating a VM " + guest.name + \
-                       "\n  Type: " + guest.type + \
-@@ -661,6 +681,7 @@ class vmmCreate(gobject.GObject):
-         self.connection.tick(noStatsUpdate=True)
- 
-         if self.config.get_console_popup() == 1:
-+	# remove these codes, since we can't make vnc graphical console avialable at Solaris at the moment.
-             # user has requested console on new created vms only
-             vm = self.connection.get_vm(guest.uuid)
-             (gtype, host, port) = vm.get_graphics_console()
-@@ -668,6 +689,7 @@ class vmmCreate(gobject.GObject):
-                 self.emit("action-show-console", self.connection.get_uri(), guest.uuid)
-             else:
-                 self.emit("action-show-terminal", self.connection.get_uri(), guest.uuid)
-+            #self.emit("action-show-terminal", self.connection.get_uri(), guest.uuid)
-         self.close()
- 
-     def do_install(self, guest, asyncjob):
-@@ -753,7 +775,8 @@ class vmmCreate(gobject.GObject):
-         if file != None and len(file) > 0 and not(os.path.exists(file)):
-             self.window.get_widget("storage-file-size").set_sensitive(True)
-             self.window.get_widget("non-sparse").set_sensitive(True)
--            self.window.get_widget("storage-file-size").set_value(4000)
-+	    # in solaris, in order to create solaris guest, need mini storage about 9G
-+            self.window.get_widget("storage-file-size").set_value(9120)
-         else:
-             self.window.get_widget("storage-file-size").set_sensitive(False)
-             self.window.get_widget("non-sparse").set_sensitive(False)
-@@ -876,8 +899,6 @@ class vmmCreate(gobject.GObject):
-                     self._validation_error_box(_("Physical Device Required"),
-                                                _("You must select one of the physical devices"))
-                     return False
--
--
-         # do this always, since there's no "leaving a notebook page" event.
-         self.window.get_widget("create-back").set_sensitive(True)
-         return True
-@@ -1007,6 +1028,7 @@ class vmmCreate(gobject.GObject):
- 
-     def populate_device_model(self, model):
-         model.clear()
-+        # set the bridge value in create widget
-         for name in self.connection.list_net_device_paths():
-             net = self.connection.get_net_device(name)
-             if net.is_shared():
-diff -Nrup virt-manager-0.4.0.mod.1-2-3/src/virtManager/details.py virt-manager-0.4.0.mod.4/src/virtManager/details.py
---- virt-manager-0.4.0.mod.1-2-3/src/virtManager/details.py	2008-02-15 17:38:58.000000000 +0800
-+++ virt-manager-0.4.0.mod.4/src/virtManager/details.py	2008-03-19 10:51:04.783578000 +0800
-@@ -24,6 +24,7 @@ import libvirt
- import sparkline
- import logging
- import traceback
-+import sys
- 
- from virtManager.error import vmmErrorDialog
- from virtManager.addhardware import vmmAddHardware
-@@ -63,8 +64,13 @@ class vmmDetails(gobject.GObject):
-         # Don't allowing changing network/disks for Dom0
-         if self.vm.is_management_domain():
-             self.window.get_widget("add-hardware-button").set_sensitive(False)
--        else:
--            self.window.get_widget("add-hardware-button").set_sensitive(True)
-+        else: # since we don't use bridge/virtNetwork for network, and also Xen don't support blktap device,
-+              # so make Add button unsensitive
-+            self.window.get_widget("add-hardware-button").set_sensitive(False)
-+        #since we can't add new hardware, so let's also make Remove button unsensitive
-+        self.window.get_widget("config-network-remove").set_sensitive(False)
-+        self.window.get_widget("config-disk-remove").set_sensitive(False)
-+
- 
-         self.window.get_widget("overview-name").set_text(self.vm.get_name())
-         self.window.get_widget("overview-uuid").set_text(self.vm.get_uuid())
-@@ -120,8 +126,8 @@ class vmmDetails(gobject.GObject):
-         self.vm.connect("resources-sampled", self.refresh_resources)
-         self.window.get_widget("hw-list").get_selection().connect("changed", self.hw_selected)
- 
--        self.update_widget_states(vm, vm.status())
--        self.refresh_resources(vm)
-+        self.update_widget_states(self.vm, self.vm.status())
-+        self.refresh_resources(self.vm)
- 
-         self.pixbuf_processor = gtk.gdk.pixbuf_new_from_file(config.get_icon_dir() + "/icon_cpu.png")
-         self.pixbuf_memory = gtk.gdk.pixbuf_new_from_file(config.get_icon_dir() + "/icon_cpu.png")
-@@ -146,6 +152,7 @@ class vmmDetails(gobject.GObject):
-         self.window.get_widget("overview-disk-usage-label").hide()
-         self.network_traffic_graph.hide()
-         dialog.present()
-+        self.update_widget_states(self.vm, self.vm.status())
- 
-     def show_help(self, src):
-         # From the Details window, show the help document from the Details page
-@@ -263,6 +270,7 @@ class vmmDetails(gobject.GObject):
-         self.emit("action-destroy-domain", self.vm.get_connection().get_uri(), self.vm.get_uuid())
- 
-     def update_widget_states(self, vm, status):
-+        self.toggle_toolbar(self.window.get_widget("details-menu-view-toolbar"))
-         self.ignorePause = True
-         if status in [ libvirt.VIR_DOMAIN_SHUTDOWN, libvirt.VIR_DOMAIN_SHUTOFF ] or vm.is_read_only():
-             # apologies for the spaghetti, but the destroy choice is a special case
-@@ -290,15 +298,28 @@ class vmmDetails(gobject.GObject):
-                 self.window.get_widget("details-menu-shutdown").set_sensitive(False)
-                 self.window.get_widget("details-menu-save").set_sensitive(False)
-             else:
--                self.window.get_widget("control-pause").set_sensitive(True)
-+                # since when click Pause, domain will disappear, so disable all Pause
-+                # the reason is when pause, libvirt will call hypercall, but now we only have 
-+                # 32-bit gtk, so virt-manager run with 32-bit, so libvirt only can call 32-bit hypercal,
-+                # and failed, so can't return domain, then disappear, we trying to port 64-bit gtk python libs.
-+                self.window.get_widget("control-pause").set_sensitive(False)
-+                #self.window.get_widget("control-pause").set_sensitive(True)
-                 self.window.get_widget("control-shutdown").set_sensitive(True)
--                self.window.get_widget("details-menu-pause").set_sensitive(True)
-+                #self.window.get_widget("details-menu-pause").set_sensitive(True)
-+                self.window.get_widget("details-menu-pause").set_sensitive(False)
-                 self.window.get_widget("details-menu-shutdown").set_sensitive(True)
-                 self.window.get_widget("details-menu-save").set_sensitive(True)
-+                # If HVM, disable save, since currently not ready from xVM.
-+                #if vm.is_hvm():
-+                #    self.window.get_widget("details-menu-save").set_sensitive(False)
-+                #else:
-+                #    self.window.get_widget("details-menu-save").set_sensitive(True)
- 
-                 if status == libvirt.VIR_DOMAIN_PAUSED:
--                    self.window.get_widget("control-pause").set_active(True)
--                    self.window.get_widget("details-menu-pause").set_active(True)
-+                    #self.window.get_widget("control-pause").set_active(True)
-+                    #self.window.get_widget("details-menu-pause").set_active(True)
-+                    self.window.get_widget("control-pause").set_active(False)
-+                    self.window.get_widget("details-menu-pause").set_active(False)
-                 else:
-                     self.window.get_widget("control-pause").set_active(False)
-                     self.window.get_widget("details-menu-pause").set_active(False)
-@@ -313,6 +334,13 @@ class vmmDetails(gobject.GObject):
-             self.window.get_widget("details-menu-serial").set_sensitive(True)
-         else:
-             self.window.get_widget("details-menu-serial").set_sensitive(False)
-+        
-+        # if HVM, make graphical console ready, or disable it for PVM. Since currently, graphical console is not available for PVM.
-+        if vm.is_hvm():
-+            self.window.get_widget("details-menu-graphics").set_sensitive(True)
-+        else:
-+            self.window.get_widget("details-menu-graphics").set_sensitive(False)
-+
- 
-     def refresh_resources(self, ignore):
-         details = self.window.get_widget("details-pages")
-@@ -474,7 +502,7 @@ class vmmDetails(gobject.GObject):
-             vnic = None
-             if netinfo[0] == "bridge":
-                 vnic = virtinst.VirtualNetworkInterface(type=netinfo[0], bridge=netinfo[1], macaddr=netinfo[3])
--            elif net[0] == "network":
-+            elif netinfo[0] == "network":
-                 vnic = virtinst.VirtualNetworkInterface(type=netinfo[0], network=netinfo[1], macaddr=netinfo[3])
-             else:
-                 vnic = virtinst.VirtualNetworkInterface(type=netinfo[0], macaddr=netinfo[3])
-diff -Nrup virt-manager-0.4.0.mod.1-2-3/src/virtManager/host.py virt-manager-0.4.0.mod.4/src/virtManager/host.py
---- virt-manager-0.4.0.mod.1-2-3/src/virtManager/host.py	2008-02-15 17:38:58.000000000 +0800
-+++ virt-manager-0.4.0.mod.4/src/virtManager/host.py	2008-02-16 16:09:43.588549000 +0800
-@@ -46,6 +46,8 @@ class vmmHost(gobject.GObject):
-         self.window.get_widget("overview-memory").set_text(self.conn.pretty_host_memory_size())
-         self.window.get_widget("overview-cpus").set_text(str(self.conn.host_active_processor_count()))
-         self.window.get_widget("overview-arch").set_text(self.conn.host_architecture())
-+        # since we can't support virtual network, so deactive add-net now.
-+	self.window.get_widget("net-add").set_sensitive(False)
- 
-         netListModel = gtk.ListStore(str, str, gtk.gdk.Pixbuf)
-         self.window.get_widget("net-list").set_model(netListModel)
-diff -Nrup virt-manager-0.4.0.mod.1-2-3/src/virtManager/manager.py virt-manager-0.4.0.mod.4/src/virtManager/manager.py
---- virt-manager-0.4.0.mod.1-2-3/src/virtManager/manager.py	2008-02-15 17:38:58.000000000 +0800
-+++ virt-manager-0.4.0.mod.4/src/virtManager/manager.py	2008-02-16 16:09:43.587610000 +0800
-@@ -93,6 +93,7 @@ class vmmManager(gobject.GObject):
- 
-         self.window.get_widget("vm-view").set_active(0)
- 
-+        # right-click menu icon of each menu items
-         self.vmmenu_icons = {}
-         self.vmmenu_icons["run"] = gtk.Image()
-         self.vmmenu_icons["run"].set_from_pixbuf(gtk.gdk.pixbuf_new_from_file_at_size(self.config.get_icon_dir() + "/icon_run.png", 18, 18))
-@@ -106,6 +107,7 @@ class vmmManager(gobject.GObject):
-         self.vmmenu = gtk.Menu()
-         self.vmmenu_items = {}
- 
-+        # menu list when right-click on some domain
-         self.vmmenu_items["run"] = gtk.ImageMenuItem("_Run")
-         self.vmmenu_items["run"].set_image(self.vmmenu_icons["run"])
-         self.vmmenu_items["run"].show()
-@@ -171,10 +173,12 @@ class vmmManager(gobject.GObject):
-             "on_vm_open_clicked": self.open_vm_console,
-             "on_vm_new_clicked": self.show_vm_create,
-             "on_vm_delete_clicked": self.delete_vm,
-+	    "on_menu_edit_delete_activate" : self.delete_vm,
-             "on_menu_edit_details_activate": self.show_vm_details,
-             "on_menu_host_details_activate": self.show_host,
- 
-             "on_vm_view_changed": self.vm_view_changed,
-+            # when double-click on some domain from domain-list, run graphical console
-             "on_vm_list_row_activated": self.open_vm_console,
- 
-             "on_vm_list_button_press_event": self.popup_vm_menu,
-@@ -192,7 +196,7 @@ class vmmManager(gobject.GObject):
-         self.connection.connect("vm-removed", self.vm_removed)
- 
-         win = self.window.get_widget("vmm-manager")
--        win.set_title(win.get_title() + " (" + self.connection.get_name() + ")")
-+        win.set_title(win.get_title() + " (" + str(self.connection.get_name()) + ")")
- 
-         # store any error message from the restore-domain callback
-         self.domain_restore_error = ""
-@@ -403,6 +407,10 @@ class vmmManager(gobject.GObject):
-         row[8] = vm.current_memory_percentage()
-         model.row_changed(row.path, row.iter)
- 
-+    # zhua add, used for run serial console to replace graphical console when click open or double clike
-+    def open_vm_terminal(self,ignore,ignore2=None,ignore3=None):
-+        self.emit("action-show-terminal", self.connection.get_uri(), self.current_vmuuid())
-+
-     def current_vm(self):
-         vmlist = self.window.get_widget("vm-list")
-         selection = vmlist.get_selection()
-@@ -431,9 +439,16 @@ class vmmManager(gobject.GObject):
-     def show_vm_create(self,ignore):
-         self.emit("action-show-create", self.connection.get_uri())
- 
-+    # change this function, so when try to open console, at first check if the domain is 0 or not active, 
-+    # if so, then don't open any console. If HVM, then open graphical console, if PVM, open serial console.
-     def open_vm_console(self,ignore,ignore2=None,ignore3=None):
--        self.emit("action-show-console", self.connection.get_uri(), self.current_vmuuid())
--
-+        vm = self.current_vm()
-+	if vm.get_id() == 0 or not vm.is_active():
-+            return
-+        if not vm.is_hvm():
-+            self.emit("action-show-terminal", self.connection.get_uri(), self.current_vmuuid())            
-+        else: 
-+            self.emit("action-show-console", self.connection.get_uri(), self.current_vmuuid())
- 
-     def vm_selected(self, selection):
-         if selection == None or selection.count_selected_rows() == 0:
-@@ -445,13 +460,19 @@ class vmmManager(gobject.GObject):
-         else:
-             vm = self.current_vm()
-             if vm.is_active():
-+                #if select dom0, make Open disable, because can't open any console for dom0.
-+                if vm.get_id() == 0:
-+                    self.window.get_widget("vm-open").set_sensitive(False)
-+                else:
-+                    self.window.get_widget("vm-open").set_sensitive(True)
-                 self.window.get_widget("vm-delete").set_sensitive(False)
-                 self.window.get_widget("menu_edit_delete").set_sensitive(False)
-             else:
-+                #if select an unactive domaim, make Open disable, because can't open any console for it
-+                self.window.get_widget("vm-open").set_sensitive(False)
-                 self.window.get_widget("vm-delete").set_sensitive(True)
-                 self.window.get_widget("menu_edit_delete").set_sensitive(True)
-             self.window.get_widget("vm-details").set_sensitive(True)
--            self.window.get_widget("vm-open").set_sensitive(True)
-             self.window.get_widget("menu_edit_details").set_sensitive(True)
- 
-     def popup_vm_menu(self, widget, event):
-@@ -465,6 +486,8 @@ class vmmManager(gobject.GObject):
-                 self.vmmenu_items["resume"].hide()
-                 self.vmmenu_items["resume"].set_sensitive(False)
-                 self.vmmenu_items["shutdown"].set_sensitive(False)
-+                # if the domain is domain 0, should disable 'Open' item in right-click menu.
-+                self.vmmenu_items["open"].set_sensitive(False)
-             else:
-                 if vm.status() == libvirt.VIR_DOMAIN_SHUTOFF:
-                     self.vmmenu_items["run"].set_sensitive(True)
-@@ -472,12 +495,16 @@ class vmmManager(gobject.GObject):
-                     self.vmmenu_items["resume"].hide()
-                     self.vmmenu_items["resume"].set_sensitive(False)
-                     self.vmmenu_items["shutdown"].set_sensitive(False)
-+                    self.vmmenu_items["open"].set_sensitive(False)
-                 elif vm.status() == libvirt.VIR_DOMAIN_RUNNING:
-                     self.vmmenu_items["run"].set_sensitive(False)
--                    self.vmmenu_items["pause"].set_sensitive(True)
-+                    self.vmmenu_items["pause"].show()
-+                    self.vmmenu_items["pause"].set_sensitive(False)
-+                    #self.vmmenu_items["pause"].set_sensitive(True)
-                     self.vmmenu_items["resume"].hide()
-                     self.vmmenu_items["resume"].set_sensitive(False)
-                     self.vmmenu_items["shutdown"].set_sensitive(True)
-+                    self.vmmenu_items["open"].set_sensitive(True)
-                 elif vm.status() == libvirt.VIR_DOMAIN_PAUSED:
-                     self.vmmenu_items["run"].set_sensitive(False)
-                     self.vmmenu_items["pause"].hide()
-@@ -485,6 +512,7 @@ class vmmManager(gobject.GObject):
-                     self.vmmenu_items["resume"].show()
-                     self.vmmenu_items["resume"].set_sensitive(True)
-                     self.vmmenu_items["shutdown"].set_sensitive(True)              
-+                    self.vmmenu_items["open"].set_sensitive(False)
- 
-             if event.button == 3:
-                 self.vmmenu.popup(None, None, None, 0, event.time)
-diff -Nrup virt-manager-0.4.0.mod.1-2-3/src/vmm-open-connection.glade virt-manager-0.4.0.mod.4/src/vmm-open-connection.glade
---- virt-manager-0.4.0.mod.1-2-3/src/vmm-open-connection.glade	2008-02-15 17:38:58.000000000 +0800
-+++ virt-manager-0.4.0.mod.4/src/vmm-open-connection.glade	2008-02-16 16:09:43.589767000 +0800
-@@ -195,7 +195,7 @@
- 		    <widget class="GtkComboBox" id="type-hypervisor">
- 		      <property name="visible">True</property>
- 		      <property name="items" translatable="yes">Xen
--QEMU</property>
-+</property>
- 		      <property name="add_tearoffs">False</property>
- 		      <property name="focus_on_click">True</property>
- 		      <signal name="changed" handler="on_type_hypervisor_changed" last_modification_time="Mon, 19 Feb 2007 22:04:06 GMT"/>
--- a/patches/virt-manager-05-host-about.diff	Thu Jul 30 06:44:58 2009 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-diff -Nrup virt-manager-0.4.0.mod.4/src/virtManager/engine.py virt-manager-0.4.0.mod.new/src/virtManager/engine.py
---- virt-manager-0.4.0.mod.4/src/virtManager/engine.py	2008-02-16 16:09:43.586787000 +0800
-+++ virt-manager-0.4.0.mod.new/src/virtManager/engine.py	2008-02-16 16:03:04.358674000 +0800
-@@ -220,7 +220,7 @@ class vmmEngine:
- 
-         if self.connections[uri]["windowHost"] == None:
-             manager = vmmHost(self.get_config(), con)
--            manager.connect("action-show-help", self._do_show_help)
-+            manager.connect("action-show-about", self._do_show_about)
-             self.connections[uri]["windowHost"] = manager
-         self.connections[uri]["windowHost"].show()
- 
-diff -Nrup virt-manager-0.4.0.mod.4/src/virtManager/host.py virt-manager-0.4.0.mod.new/src/virtManager/host.py
---- virt-manager-0.4.0.mod.4/src/virtManager/host.py	2008-02-16 16:09:43.588549000 +0800
-+++ virt-manager-0.4.0.mod.new/src/virtManager/host.py	2008-02-16 16:05:09.209912000 +0800
-@@ -29,8 +29,8 @@ from virtManager.createnet import vmmCre
- 
- class vmmHost(gobject.GObject):
-     __gsignals__ = {
--        "action-show-help": (gobject.SIGNAL_RUN_FIRST,
--                               gobject.TYPE_NONE, [str]),
-+        "action-show-about": (gobject.SIGNAL_RUN_FIRST,
-+                               gobject.TYPE_NONE, []),
-         }
-     def __init__(self, config, conn):
-         self.__gobject_init__()
-@@ -88,7 +88,7 @@ class vmmHost(gobject.GObject):
-         self.window.signal_autoconnect({
-             "on_menu_file_close_activate": self.close,
-             "on_vmm_host_delete_event": self.close,
--            "on_menu_help_about_activate": self.show_help,
-+            "on_menu_help_about_activate": self.show_about,
-             "on_net_add_clicked": self.add_network,
-             "on_net_delete_clicked": self.delete_network,
-             "on_net_stop_clicked": self.stop_network,
-@@ -132,6 +132,9 @@ class vmmHost(gobject.GObject):
-         # From the Details window, show the help document from the Details page
-         self.emit("action-show-help", "virt-manager-host-window")
- 
-+    def show_about(self, src):
-+        self.emit("action-show-about")
-+
-     def close(self,ignore1=None,ignore2=None):
-         self.window.get_widget("vmm-host").hide()
-         return 1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/virt-manager-05-open-connection.diff	Thu Jul 30 08:56:37 2009 +0000
@@ -0,0 +1,23 @@
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/vmm-open-connection.glade virt-manager-0.6.1/src/vmm-open-connection.glade
+--- virt-manager-0.6.1.old/src/vmm-open-connection.glade	2009-04-16 12:01:38.553103877 +0100
++++ virt-manager-0.6.1/src/vmm-open-connection.glade	2009-04-16 12:01:53.168741707 +0100
+@@ -107,7 +107,7 @@
+               <widget class="GtkComboBox" id="hypervisor">
+                 <property name="visible">True</property>
+                 <property name="items" translatable="yes">Xen
+-QEMU</property>
++</property>
+                 <accessibility>
+                   <atkproperty name="AtkObject::accessible_name" translatable="yes">Hypervisor Select</atkproperty>
+                 </accessibility>
+@@ -148,9 +148,7 @@ QEMU</property>
+               <widget class="GtkComboBox" id="connection">
+                 <property name="visible">True</property>
+                 <property name="items" translatable="yes">Local
+-Remote Password or Kerberos
+-Remote SSL/TLS with x509 certificate
+-Remote tunnel over SSH</property>
++</property>
+                 <accessibility>
+                   <atkproperty name="AtkObject::accessible_name" translatable="yes">Connection Select</atkproperty>
+                 </accessibility>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/virt-manager-06-connection-startup.diff	Thu Jul 30 08:56:37 2009 +0000
@@ -0,0 +1,20 @@
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virtManager/engine.py virt-manager-0.6.1/src/virtManager/engine.py
+--- virt-manager-0.6.1.old/src/virtManager/engine.py	2009-04-02 16:49:39.944591749 +0100
++++ virt-manager-0.6.1/src/virtManager/engine.py	2009-04-02 17:32:10.846508327 +0100
+@@ -76,11 +76,16 @@ class vmmEngine(gobject.GObject):
+         self.tick()
+ 
+     def load_stored_uris(self):
++        uri_connected = False
+         uris = self.config.get_connections()
+         if uris != None:
+             logging.debug("About to connect to uris %s" % uris)
+             for uri in uris:
+                 self.add_connection(uri)
++                uri_connected = True
++
++        if uri_connected == False:
++            self.show_connect()
+ 
+     def autostart_connections(self):
+         for uri in self.connections:
--- a/patches/virt-manager-06-delete-button.diff	Thu Jul 30 06:44:58 2009 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-diff -Nrup virt-manager-0.4.0.mod.5/src/virtManager/manager.py virt-manager-0.4.0.mod.6/src/virtManager/manager.py
---- virt-manager-0.4.0.mod.5/src/virtManager/manager.py	2008-02-15 20:26:11.000000000 +0800
-+++ virt-manager-0.4.0.mod.6/src/virtManager/manager.py	2008-03-05 00:04:14.921526000 +0800
-@@ -406,6 +406,14 @@ class vmmManager(gobject.GObject):
-         row[7] = vm.get_memory_pretty()
-         row[8] = vm.current_memory_percentage()
-         model.row_changed(row.path, row.iter)
-+        if vm == self.current_vm():
-+            if vm.is_active():
-+                self.window.get_widget("vm-delete").set_sensitive(False)
-+                self.window.get_widget("menu_edit_delete").set_sensitive(False)
-+            else:
-+                self.window.get_widget("vm-delete").set_sensitive(True)
-+                self.window.get_widget("menu_edit_delete").set_sensitive(True)
-+
- 
-     # zhua add, used for run serial console to replace graphical console when click open or double clike
-     def open_vm_terminal(self,ignore,ignore2=None,ignore3=None):
--- a/patches/virt-manager-07-build.diff	Thu Jul 30 06:44:58 2009 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
---- virt-manager-0.4.0/configure.ac.orig	2008-11-05 12:53:29.715554492 +0900
-+++ virt-manager-0.4.0/configure.ac	2008-11-05 12:53:37.486401567 +0900
-@@ -24,7 +24,7 @@ AC_PROG_INTLTOOL([0.35.0])
- 
- AC_OUTPUT(Makefile
-           pixmaps/Makefile
--          po/Makefile
-+          po/Makefile.in
-           src/Makefile
-           src/virtManager/Makefile
-           src/vncViewer/Makefile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/virt-manager-07-virtual-network.diff	Thu Jul 30 08:56:37 2009 +0000
@@ -0,0 +1,167 @@
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virtManager/host.py virt-manager-0.6.1/src/virtManager/host.py
+--- virt-manager-0.6.1.old/src/virtManager/host.py	2009-01-26 19:33:33.000000000 +0000
++++ virt-manager-0.6.1/src/virtManager/host.py	2009-04-03 12:34:32.590142391 +0100
+@@ -61,6 +61,8 @@ class vmmHost(gobject.GObject):
+         self.window.get_widget("overview-cpus").set_text(str(self.conn.host_active_processor_count()))
+         self.window.get_widget("overview-arch").set_text(self.conn.host_architecture())
+         self.window.get_widget("config-autoconnect").set_active(conn.get_autoconnect())
++        # No virtual network support, deactivate add-net
++        self.window.get_widget("net-add").set_sensitive(False)
+ 
+         netListModel = gtk.ListStore(str, str, str)
+         self.window.get_widget("net-list").set_model(netListModel)
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virtManager/addhardware.py virt-manager-0.6.1/src/virtManager/addhardware.py
+--- virt-manager-0.6.1.old/src/virtManager/addhardware.py	2009-04-17 12:51:27.988403597 +0100
++++ virt-manager-0.6.1/src/virtManager/addhardware.py	2009-04-17 12:59:34.580561537 +0100
+@@ -120,6 +120,14 @@ class vmmAddHardware(gobject.GObject):
+         network_list.pack_start(text, True)
+         network_list.add_attribute(text, 'text', 1)
+ 
++        # We don't support virtual networks, hide them
++        self.window.get_widget("net-type-network").set_active(False)
++        self.window.get_widget("net-type-network").set_sensitive(False)
++        self.window.get_widget("net-type-device").set_active(True)
++        self.window.get_widget("net-type-device").set_sensitive(True)
++        self.window.get_widget("net-network").set_active(False)
++        self.window.get_widget("net-network").set_sensitive(False)
++
+         device_list = self.window.get_widget("net-device")
+         device_model = gtk.ListStore(str, str, bool)
+         device_list.set_model(device_model)
+@@ -191,8 +199,13 @@ 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-device").set_active(False)
++        # We don't support virtual networks, hide them
++        self.window.get_widget("net-type-network").set_active(False)
++        self.window.get_widget("net-type-network").set_sensitive(False)
++        self.window.get_widget("net-type-device").set_active(True)
++        self.window.get_widget("net-network").set_active(False)
++        self.window.get_widget("net-network").set_sensitive(False)
++
+         self.window.get_widget("mac-address").set_active(False)
+         self.window.get_widget("create-mac-address").set_text("")
+ 
+@@ -370,11 +383,11 @@ class vmmAddHardware(gobject.GObject):
+         if self.window.get_widget("net-type-network").get_active():
+             net = self.window.get_widget("net-network")
+             model = net.get_model()
+-            return ["network", model.get_value(net.get_active_iter(), 0)]
++            return ["network", model.get_value(net.get_active_iter(), 1)]
+         else:
+             dev = self.window.get_widget("net-device")
+             model = dev.get_model()
+-            return ["bridge", model.get_value(dev.get_active_iter(), 0)]
++            return ["bridge", model.get_value(dev.get_active_iter(), 1)]
+ 
+     def get_config_net_model(self):
+         model = self.window.get_widget("net-model")
+@@ -412,10 +425,10 @@ class vmmAddHardware(gobject.GObject):
+                 netmodel.set_active(0)
+ 
+             if remote:
+-                self.window.get_widget("net-type-network").set_active(True)
+-                self.window.get_widget("net-type-device").set_active(False)
+-                self.window.get_widget("net-type-device").set_sensitive(False)
+-                self.window.get_widget("net-device").set_active(-1)
++                self.window.get_widget("net-type-network").set_active(False)
++                self.window.get_widget("net-type-network").set_sensitive(False)
++                self.window.get_widget("net-type-device").set_active(True)
++                self.window.get_widget("net-type-device").set_sensitive(True)
+             else:
+                 self.window.get_widget("net-type-device").set_sensitive(True)
+             self.change_network_type()
+@@ -898,7 +911,11 @@ class vmmAddHardware(gobject.GObject):
+                 hasShared = True
+                 if brIndex < 0:
+                     brIndex = len(model)
+-                model.append([net.get_bridge(), "%s (%s %s)" % (net.get_name(), _("Bridge"), net.get_bridge()), True])
++
++                if net.get_bridge() is not None:
++                    model.append([net.get_bridge(), "%s (%s %s)" % (net.get_name(), _("Bridge"), net.get_bridge()), True])
++                else:
++                    model.append([net.get_bridge(), "%s" % net.get_name(), True])
+             else:
+                 model.append([net.get_bridge(), "%s (%s)" % (net.get_name(), _("Not bridged")), False])
+         return (hasShared, brIndex)
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virtManager/create.py virt-manager-0.6.1/src/virtManager/create.py
+--- virt-manager-0.6.1.old/src/virtManager/create.py	2009-04-17 13:02:49.677378493 +0100
++++ virt-manager-0.6.1/src/virtManager/create.py	2009-04-17 13:03:06.741706914 +0100
+@@ -170,6 +170,13 @@ class vmmCreate(gobject.GObject):
+         network_list.pack_start(text, True)
+         network_list.add_attribute(text, 'text', 1)
+ 
++        # Virtual network not supported, de-activate
++        self.window.get_widget("net-type-network").set_active(False)
++        self.window.get_widget("net-type-network").set_sensitive(False)
++        self.window.get_widget("net-type-device").set_active(True)
++        self.window.get_widget("net-network").set_active(False)
++        self.window.get_widget("net-network").set_sensitive(False)
++
+         device_list = self.window.get_widget("net-device")
+         device_model = gtk.ListStore(str, str, bool)
+         device_list.set_model(device_model)
+@@ -280,8 +287,8 @@ 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-device").set_active(False)
++        self.window.get_widget("net-type-network").set_active(False)
++        self.window.get_widget("net-type-device").set_active(True)
+         self.window.get_widget("mac-address").set_active(False)
+         self.window.get_widget("create-mac-address").set_text("")
+ 
+@@ -430,11 +437,13 @@ class vmmCreate(gobject.GObject):
+         if self.window.get_widget("net-type-network").get_active():
+             net = self.window.get_widget("net-network")
+             model = net.get_model()
+-            return ["network", model.get_value(net.get_active_iter(), 0)]
++            # Solaris: Check index 1 not 0
++            return ["network", model.get_value(net.get_active_iter(), 1)]
+         else:
+             dev = self.window.get_widget("net-device")
+             model = dev.get_model()
+-            return ["bridge", model.get_value(dev.get_active_iter(), 0)]
++            # Solaris: Check index 1 not 0
++            return ["bridge", model.get_value(dev.get_active_iter(), 1)]
+ 
+     def get_config_macaddr(self):
+         macaddr = None
+@@ -1151,7 +1160,12 @@ class vmmCreate(gobject.GObject):
+                 hasShared = True
+                 if brIndex < 0:
+                     brIndex = len(model)
+-                model.append([net.get_bridge(), "%s (%s %s)" % (net.get_name(), _("Bridge"), net.get_bridge()), True])
++
++                # Solaris: if bridge does nto exist don't include in nic name
++                if net.get_bridge() is not None:
++                    model.append([net.get_bridge(), "%s (%s %s)" % (net.get_name(), _("Bridge"), net.get_bridge()), True])
++                else:
++                    model.append([net.get_bridge(), "%s" % net.get_name(), True])
+             else:
+                 model.append([net.get_bridge(), "%s (%s)" % (net.get_name(), _("Not bridged")), False])
+         return (hasShared, brIndex)
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/vmm-host.glade virt-manager-0.6.1/src/vmm-host.glade
+--- virt-manager-0.6.1.old/src/vmm-host.glade	2009-04-22 09:22:46.778240542 +0100
++++ virt-manager-0.6.1/src/vmm-host.glade	2009-04-22 09:23:04.474365318 +0100
+@@ -411,7 +411,7 @@
+             </child>
+             <child>
+               <widget class="GtkVBox" id="vbox7">
+-                <property name="visible">True</property>
++                <property name="visible">False</property>
+                 <property name="border_width">3</property>
+                 <child>
+                   <widget class="GtkHPaned" id="hpaned2">
+@@ -944,7 +944,7 @@
+             </child>
+             <child>
+               <widget class="GtkVBox" id="vbox5">
+-                <property name="visible">True</property>
++                <property name="visible">False</property>
+                 <property name="border_width">3</property>
+                 <child>
+                   <widget class="GtkHPaned" id="hpaned1">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/virt-manager-08-dladm-network.diff	Thu Jul 30 08:56:37 2009 +0000
@@ -0,0 +1,109 @@
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virtManager/connection.py virt-manager-0.6.1/src/virtManager/connection.py
+--- virt-manager-0.6.1.old/src/virtManager/connection.py	2009-01-26 19:33:33.000000000 +0000
++++ virt-manager-0.6.1/src/virtManager/connection.py	2009-04-03 15:43:55.494587167 +0100
+@@ -30,6 +30,7 @@ import dbus
+ import threading
+ import gtk
+ import virtinst
++import re
+ 
+ from virtManager.domain import vmmDomain
+ from virtManager.network import vmmNetwork
+@@ -142,7 +143,12 @@ class vmmConnection(gobject.GObject):
+ 
+             # Find info about all current present physical net devices
+             # This is OS portable...
+-            for path in self.hal_iface.FindDeviceByCapability("net"):
++            #for path in self.hal_iface.FindDeviceByCapability("net"):
++
++            # Not completely :( HAL on solaris does not support network devices
++            # So parsing dladm/ifconfig to get possible information 
++            output0=os.popen("/usr/sbin/dladm show-link -p -o LINK")
++            for path in output0.readlines():
+                 self._net_phys_device_added(path)
+         except:
+             (_type, value, stacktrace) = sys.exc_info ()
+@@ -154,37 +160,33 @@ class vmmConnection(gobject.GObject):
+ 
+     def _net_phys_device_added(self, path):
+         logging.debug("Got physical device %s" % path)
+-        obj = self.bus.get_object("org.freedesktop.Hal", path)
+-        objif = dbus.Interface(obj, "org.freedesktop.Hal.Device")
+-        if objif.QueryCapability("net"):
+-            name = objif.GetPropertyString("net.interface")
+-            # XXX ...but this is Linux specific again - patches welcomed
+-            #sysfspath = objif.GetPropertyString("linux.sysfs_path")
+-            # XXX hal gives back paths to /sys/devices/pci0000:00/0000:00:1e.0/0000:01:00.0/net/eth0
+-            # which doesnt' work so well - we want this:
+-            sysfspath = "/sys/class/net/" + name
+-
+-            # If running a device in bridged mode, there's a reasonable
+-            # chance that the actual ethernet device has been renamed to
+-            # something else. ethN -> pethN
+-            psysfspath = sysfspath[0:len(sysfspath)-len(name)] + "p" + name
+-            if os.path.exists(psysfspath):
+-                logging.debug("Device %s named to p%s" % (name, name))
+-                name = "p" + name
+-                sysfspath = psysfspath
+-
+-            # Ignore devices that are slaves of a bond
+-            if self._net_is_bonding_slave(name, sysfspath):
+-                logging.debug("Skipping device %s in bonding slave" % name)
+-                return
+-
+-            mac = objif.GetPropertyString("net.address")
++        # Parse dladm output here and use ifconfig -a to get more info
++        if not self.netdevs.has_key(path):
++            name = path.split('\n')[0]
++            shared = False
++            mac = None
++            bridge = name
++
++            # Parse ifconfig output for MAC address, and whether shared
++            output=os.popen("/sbin/ifconfig -a")
++            line = output.readline()
++            while len(line) != 0 :
++                if line[0] != ' ' and line[0] != '	' :
++                    if (re.search(name,line) != None) and (re.search("IPv4", line) !=None):
++                        while True:
++                            line = output.readline()
++                            if re.search("ether", line) != None:
++                                mac = line.split(' ')[1]
++                                shared = True
++                                line = output.readline()
++                                break
++                    else:
++                        line = output.readline()
++                else:
++                    line = output.readline()
+ 
+             # Add the main NIC
+-            self._net_device_added(name, mac, sysfspath)
+-
+-            # Add any associated VLANs
+-            self._net_tag_device_added(name, sysfspath)
++            self._net_device_added(name, mac, path, shared)
+ 
+     def _net_tag_device_added(self, name, sysfspath):
+         logging.debug("Checking for VLANs on %s" % sysfspath)
+@@ -205,15 +207,16 @@ class vmmConnection(gobject.GObject):
+                         vlanpath = pvlanpath
+                     self._net_device_added(vlanname, vlanmac, vlanpath)
+ 
+-    def _net_device_added(self, name, mac, sysfspath):
++    def _net_device_added(self, name, mac, sysfspath, shared=None):
+         # Race conditions mean we can occassionally see device twice
+         if self.netdevs.has_key(name):
+             return
+ 
+         bridge = self._net_get_bridge_owner(name, sysfspath)
+-        shared = False
+-        if bridge is not None:
+-            shared = True
++        if shared is None:
++            shared = False
++            if bridge is not None:
++                shared = True
+ 
+         logging.debug("Adding net device %s %s %s (bridge: %s)" % (name, mac, sysfspath, str(bridge)))
+ 
--- a/patches/virt-manager-08-filesize.diff	Thu Jul 30 06:44:58 2009 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-/jds/bin/diff -uprN virt-manager-0.4.0.old/src/virtManager/create.py virt-manager-0.4.0/src/virtManager/create.py
---- virt-manager-0.4.0.old/src/virtManager/create.py	2009-04-14 15:24:45.862272000 +0100
-+++ virt-manager-0.4.0/src/virtManager/create.py	2009-04-14 15:25:38.579712000 +0100
-@@ -882,7 +882,7 @@ class vmmCreate(gobject.GObject):
-                                                _("You chose 'Simple File' storage for your storage method, but chose a directory instead of a file. Please enter a new filename or choose an existing file."))
-                     return False
- 
--            d = virtinst.VirtualDisk(self.get_config_disk_image(), self.get_config_disk_size(), sparse = self.is_sparse_file())
-+            d = virtinst.VirtualDisk(self.get_config_disk_image(), self.get_config_disk_size() / 1024.0, sparse = self.is_sparse_file())
-             if d.is_conflict_disk(self.connection.vmm) is True:
-                res = self._yes_no_box(_('Disk "%s" is already in use by another guest!' % disk), \
-                                                _("Do you really want to use the disk ?"))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/virt-manager-09-create-arch.diff	Thu Jul 30 08:56:37 2009 +0000
@@ -0,0 +1,35 @@
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virtManager/create.py virt-manager-0.6.1/src/virtManager/create.py
+--- virt-manager-0.6.1.old/src/virtManager/create.py	2009-04-17 13:04:42.116564080 +0100
++++ virt-manager-0.6.1/src/virtManager/create.py	2009-04-17 13:05:11.942148231 +0100
+@@ -925,6 +925,9 @@ class vmmCreate(gobject.GObject):
+                 os_type = "hvm"
+             self._guest.installer = self.get_config_installer(self.get_domain_type(), os_type)
+ 
++            # Solaris: Reset arch back to selected arch...
++            self._guest.arch = self.get_domain_arch()
++
+             try:
+                 if self.get_config_os_type() is not None \
+                    and self.get_config_os_type() != "generic":
+@@ -946,6 +949,9 @@ class vmmCreate(gobject.GObject):
+                 os_type = "hvm"
+             self._guest.installer = self.get_config_installer(self.get_domain_type(), os_type)
+ 
++            # Solaris: Reset arch back to selected arch...
++            self._guest.arch = self.get_domain_arch()
++
+             src = self.get_config_install_source()
+             if not src:
+                 return self.err.val_err(_("An install media path is required."))
+@@ -1243,6 +1249,11 @@ class vmmCreate(gobject.GObject):
+                 native = i
+             i = i + 1
+ 
++        # Solaris: if host archictecture is not found in list of archs
++        # Ensure first item on list is selected as i86pc not supported
++        if native == -1 and i > 0:
++            native = 0
++
+         return native
+ 
+ 
--- a/patches/virt-manager-09-gtk-spin-button.diff	Thu Jul 30 06:44:58 2009 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/jds/bin/diff -uprN virt-manager-0.4.0.old/src/vmm-add-hardware.glade virt-manager-0.4.0/src/vmm-add-hardware.glade
---- virt-manager-0.4.0.old/src/vmm-add-hardware.glade	2009-04-15 13:35:00.257254368 +0100
-+++ virt-manager-0.4.0/src/vmm-add-hardware.glade	2009-04-15 13:49:53.872559206 +0100
-@@ -731,7 +731,7 @@
- 				      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- 				      <property name="snap_to_ticks">True</property>
- 				      <property name="wrap">False</property>
--				      <property name="adjustment">500 0 4000000 100 500 500</property>
-+				      <property name="adjustment">500 0 4000000 100 500 0</property>
- 				      <signal name="changed" handler="on_storage_file_size_changed" last_modification_time="Thu, 10 Aug 2006 19:19:04 GMT"/>
- 				    </widget>
- 				  </child>
-/jds/bin/diff -uprN virt-manager-0.4.0.old/src/vmm-details.glade virt-manager-0.4.0/src/vmm-details.glade
---- virt-manager-0.4.0.old/src/vmm-details.glade	2009-04-15 13:35:00.259901783 +0100
-+++ virt-manager-0.4.0/src/vmm-details.glade	2009-04-15 13:50:02.807361940 +0100
-@@ -1161,7 +1161,7 @@
- 					  <property name="update_policy">GTK_UPDATE_IF_VALID</property>
- 					  <property name="snap_to_ticks">False</property>
- 					  <property name="wrap">False</property>
--					  <property name="adjustment">1 1 32 1 2 2</property>
-+					  <property name="adjustment">1 1 32 1 2 0</property>
- 					  <signal name="changed" handler="on_config_vcpus_changed" last_modification_time="Fri, 22 Sep 2006 15:41:27 GMT"/>
- 					</widget>
- 					<packing>
-@@ -1578,7 +1578,7 @@
- 					      <property name="update_policy">GTK_UPDATE_IF_VALID</property>
- 					      <property name="snap_to_ticks">False</property>
- 					      <property name="wrap">False</property>
--					      <property name="adjustment">50 50 32000 5 10 10</property>
-+					      <property name="adjustment">50 50 32000 5 10 0</property>
- 					      <signal name="changed" handler="on_config_maxmem_changed" last_modification_time="Mon, 13 Nov 2006 17:34:48 GMT"/>
- 					    </widget>
- 					    <packing>
-@@ -1723,8 +1723,8 @@
- 					      <property name="update_policy">GTK_UPDATE_IF_VALID</property>
- 					      <property name="snap_to_ticks">False</property>
- 					      <property name="wrap">False</property>
--					      <property name="adjustment">50 50 32000 5 10 10</property>
--					      <signal name="changed" handler="on_config_memory_changed" last_modification_time="Fri, 01 Sep 2006 19:08:14 GMT"/>
-+					      <property name="adjustment">50 50 32000 5 10 0</property>
-+					      signal name="changed" handler="on_config_memory_changed" last_modification_time="Fri, 01 Sep 2006 19:08:14 GMT"/>
- 					    </widget>
- 					    <packing>
- 					      <property name="padding">0</property>
-/jds/bin/diff -uprN virt-manager-0.4.0.old/src/vmm-modify-file-storage.glade virt-manager-0.4.0/src/vmm-modify-file-storage.glade
---- virt-manager-0.4.0.old/src/vmm-modify-file-storage.glade	2009-04-15 13:35:00.260240060 +0100
-+++ virt-manager-0.4.0/src/vmm-modify-file-storage.glade	2009-04-15 13:50:12.639894566 +0100
-@@ -214,7 +214,7 @@
- 		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- 		      <property name="snap_to_ticks">False</property>
- 		      <property name="wrap">False</property>
--		      <property name="adjustment">1 0 100 1 10 10</property>
-+		      <property name="adjustment">1 0 100 1 10 0</property>
- 		    </widget>
- 		    <packing>
- 		      <property name="padding">0</property>
-/jds/bin/diff -uprN virt-manager-0.4.0.old/src/vmm-preferences.glade virt-manager-0.4.0/src/vmm-preferences.glade
---- virt-manager-0.4.0.old/src/vmm-preferences.glade	2009-04-15 13:35:00.261389821 +0100
-+++ virt-manager-0.4.0/src/vmm-preferences.glade	2009-04-15 13:50:27.836348937 +0100
-@@ -173,7 +173,7 @@
- 			  <property name="update_policy">GTK_UPDATE_IF_VALID</property>
- 			  <property name="snap_to_ticks">False</property>
- 			  <property name="wrap">False</property>
--			  <property name="adjustment">5 1 60 1 5 5</property>
-+			  <property name="adjustment">5 1 60 1 5 0</property>
- 			  <signal name="value_changed" handler="on_stats_update_interval_changed" last_modification_time="Mon, 03 Apr 2006 15:27:12 GMT"/>
- 			</widget>
- 			<packing>
-@@ -249,7 +249,7 @@
- 			  <property name="update_policy">GTK_UPDATE_IF_VALID</property>
- 			  <property name="snap_to_ticks">False</property>
- 			  <property name="wrap">False</property>
--			  <property name="adjustment">10 10 300 1 5 5</property>
-+			  <property name="adjustment">10 10 300 1 5 0</property>
- 			  <signal name="value_changed" handler="on_stats_history_length_changed" last_modification_time="Mon, 03 Apr 2006 15:27:39 GMT"/>
- 			</widget>
- 			<packing>
-/jds/bin/diff -uprN virt-manager-0.4.0.old/src/vmm-create.glade virt-manager-0.4.0/src/vmm-create.glade
---- virt-manager-0.4.0.old/src/vmm-create.glade	2009-04-15 13:58:05.549595803 +0100
-+++ virt-manager-0.4.0/src/vmm-create.glade	2009-04-15 13:58:50.014738403 +0100
-@@ -2788,7 +2788,7 @@ mipsel</property>
- 				      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- 				      <property name="snap_to_ticks">True</property>
- 				      <property name="wrap">False</property>
--				      <property name="adjustment">500 0 4000000 100 500 500</property>
-+				      <property name="adjustment">500 0 4000000 100 500 0</property>
- 				      <signal name="changed" handler="on_storage_file_size_changed" last_modification_time="Thu, 10 Aug 2006 19:19:04 GMT"/>
- 				    </widget>
- 				  </child>
-@@ -4032,7 +4032,7 @@ mipsel</property>
- 			  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- 			  <property name="snap_to_ticks">False</property>
- 			  <property name="wrap">False</property>
--			  <property name="adjustment">249 50 32000 5 10 10</property>
-+			  <property name="adjustment">249 50 32000 5 10 0</property>
- 			  <signal name="value_changed" handler="on_create_memory_max_value_changed" last_modification_time="Tue, 12 Sep 2006 21:11:37 GMT"/>
- 			</widget>
- 		      </child>
-@@ -4069,7 +4069,7 @@ mipsel</property>
- 			  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- 			  <property name="snap_to_ticks">False</property>
- 			  <property name="wrap">False</property>
--			  <property name="adjustment">244 50 32000 5 10 10</property>
-+			  <property name="adjustment">244 50 32000 5 10 0</property>
- 			</widget>
- 		      </child>
- 		    </widget>
-@@ -4105,7 +4105,7 @@ mipsel</property>
- 			  <property name="update_policy">GTK_UPDATE_IF_VALID</property>
- 			  <property name="snap_to_ticks">True</property>
- 			  <property name="wrap">False</property>
--			  <property name="adjustment">1 1 32 1 2 2</property>
-+			  <property name="adjustment">1 1 32 1 2 0</property>
- 			</widget>
- 		      </child>
- 		    </widget>
--- a/patches/virt-manager-10-cdrom-disks.diff	Thu Jul 30 06:44:58 2009 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/jds/bin/diff -uprN virt-manager-0.4.0.old/src/virtManager/domain.py virt-manager-0.4.0/src/virtManager/domain.py
---- virt-manager-0.4.0.old/src/virtManager/domain.py	2009-04-15 16:43:57.134365172 +0100
-+++ virt-manager-0.4.0/src/virtManager/domain.py	2009-04-15 16:50:22.355974357 +0100
-@@ -456,23 +456,29 @@ class vmmDomain(gobject.GObject):
-                 type = node.prop("type")
-                 srcpath = None
-                 devdst = None
-+                devtype = node.prop("device")
-+                if devtype == None:
-+                    devtype = "disk"
-                 for child in node.children:
-                     if child.name == "source":
-                         if type == "file":
-                             srcpath = child.prop("file")
-                         elif type == "block":
-                             srcpath = child.prop("dev")
-+                        elif type == None:
-+                            type = "-"
-                     elif child.name == "target":
-                         devdst = child.prop("dev")
- 
-                 if srcpath == None:
--                    raise RuntimeError("missing source path")
-+                    if devtype == "cdrom" or devtype == "floppy":
-+                        srcpath = "-"
-+                        type = "block"
-+                    else:
-+                        raise RuntimeError("missing source path")
-                 if devdst == None:
-                     raise RuntimeError("missing destination device")
- 
--                devtype = node.prop("device")
--                if devtype == None:
--                    devtype = "disk"
-                 disks.append([type, srcpath, devtype, devdst])
- 
-         finally:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/virt-manager-10-options-exit.diff	Thu Jul 30 08:56:37 2009 +0000
@@ -0,0 +1,16 @@
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virt-manager.py.in virt-manager-0.6.1/src/virt-manager.py.in
+--- virt-manager-0.6.1.old/src/virt-manager.py.in	2009-04-21 12:12:18.000885703 +0100
++++ virt-manager-0.6.1/src/virt-manager.py.in	2009-04-21 13:41:34.697412511 +0100
+@@ -271,7 +271,11 @@ def main():
+         _show_startup_error("Could not run virt-manager, not root")
+         os._exit(1)
+ 
+-    (options, ignore) = parse_commandline()
++    try:
++        (options, ignore) = parse_commandline()
++    except:
++        os._exit(0)
++
+     setup_logging(options.debug)
+ 
+     # Urgh, pygtk merely logs a warning when failing to open
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/virt-manager-11-disable-remove-hardware.diff	Thu Jul 30 08:56:37 2009 +0000
@@ -0,0 +1,90 @@
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virtManager/details.py virt-manager-0.6.1/src/virtManager/details.py
+--- virt-manager-0.6.1.old/src/virtManager/details.py	2009-04-17 16:15:28.494732362 +0100
++++ virt-manager-0.6.1/src/virtManager/details.py	2009-04-17 16:17:36.385176287 +0100
+@@ -955,6 +955,11 @@ class vmmDetails(gobject.GObject):
+         else:
+             button.hide()
+ 
++        if self.vm.is_active() and self.vm.is_hvm():
++            self.window.get_widget("config-disk-remove").set_sensitive(False)
++        else:
++            self.window.get_widget("config-disk-remove").set_sensitive(True)
++
+     def refresh_network_page(self):
+         netinfo = self.get_hw_selection(HW_LIST_COL_DEVICE)
+         if not netinfo:
+@@ -970,6 +975,11 @@ class vmmDetails(gobject.GObject):
+         model = netinfo[6] or _("Hypervisor Default")
+         self.window.get_widget("network-source-model").set_text(model)
+ 
++        if self.vm.is_active() and self.vm.is_hvm():
++            self.window.get_widget("config-network-remove").set_sensitive(False)
++        else:
++            self.window.get_widget("config-network-remove").set_sensitive(True)
++
+     def refresh_input_page(self):
+         inputinfo = self.get_hw_selection(HW_LIST_COL_DEVICE)
+         if not inputinfo:
+@@ -993,11 +1003,14 @@ class vmmDetails(gobject.GObject):
+         else:
+             self.window.get_widget("input-dev-mode").set_text(_("Relative Movement"))
+ 
+-        # Can't remove primary Xen or PS/2 mice
+-        if inputinfo[4] == "mouse" and inputinfo[3] in ("xen", "ps2"):
++        if self.vm.is_active() and self.vm.is_hvm():
+             self.window.get_widget("config-input-remove").set_sensitive(False)
+         else:
+-            self.window.get_widget("config-input-remove").set_sensitive(True)
++            # Can't remove primary Xen or PS/2 mice
++            if inputinfo[4] == "mouse" and inputinfo[3] in ("xen", "ps2"):
++                self.window.get_widget("config-input-remove").set_sensitive(False)
++            else:
++                self.window.get_widget("config-input-remove").set_sensitive(True)
+ 
+     def refresh_graphics_page(self):
+         gfxinfo = self.get_hw_selection(HW_LIST_COL_DEVICE)
+@@ -1028,12 +1041,21 @@ class vmmDetails(gobject.GObject):
+             self.window.get_widget("graphics-password").set_text("N/A")
+             self.window.get_widget("graphics-keymap").set_text("N/A")
+ 
++        if self.vm.is_active() and self.vm.is_hvm():
++            self.window.get_widget("config-graphics-remove").set_sensitive(False)
++        else:
++            self.window.get_widget("config-graphics-remove").set_sensitive(True)
++
+     def refresh_sound_page(self):
+         soundinfo = self.get_hw_selection(HW_LIST_COL_DEVICE)
+         if not soundinfo:
+             return
+ 
+         self.window.get_widget("sound-model").set_text(soundinfo[2])
++        if self.vm.is_active() and self.vm.is_hvm():
++            self.window.get_widget("config-sound-remove").set_sensitive(False)
++        else:
++            self.window.get_widget("config-sound-remove").set_sensitive(True)
+ 
+     def refresh_char_page(self):
+         charinfo = self.get_hw_selection(HW_LIST_COL_DEVICE)
+@@ -1048,6 +1070,11 @@ class vmmDetails(gobject.GObject):
+         self.window.get_widget("char-target-port").set_text(charinfo[3])
+         self.window.get_widget("char-source-path").set_text(charinfo[5] or "-")
+ 
++        if self.vm.is_active() and self.vm.is_hvm():
++            self.window.get_widget("config-char-remove").set_sensitive(False)
++        else:
++            self.window.get_widget("config-char-remove").set_sensitive(True)
++
+     def refresh_hostdev_page(self):
+         hostdevinfo = self.get_hw_selection(HW_LIST_COL_DEVICE)
+         if not hostdevinfo:
+@@ -1060,6 +1087,10 @@ class vmmDetails(gobject.GObject):
+         self.window.get_widget("hostdev-mode").set_text(hostdevinfo[3])
+         self.window.get_widget("hostdev-source").set_text(hostdevinfo[5])
+ 
++        if self.vm.is_active() and self.vm.is_hvm():
++            self.window.get_widget("config-hostdev-remove").set_sensitive(False)
++        else:
++            self.window.get_widget("config-hostdev-remove").set_sensitive(True)
+ 
+     def refresh_boot_page(self):
+         # Refresh autostart
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/virt-manager-12-storage-browse.diff	Thu Jul 30 08:56:37 2009 +0000
@@ -0,0 +1,57 @@
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virtManager/create.py virt-manager-0.6.1/src/virtManager/create.py
+--- virt-manager-0.6.1.old/src/virtManager/create.py	2009-04-20 11:58:04.417378049 +0100
++++ virt-manager-0.6.1/src/virtManager/create.py	2009-04-21 11:13:42.577866506 +0100
+@@ -790,7 +790,12 @@ class vmmCreate(gobject.GObject):
+                                           gtk.STOCK_OPEN, gtk.RESPONSE_ACCEPT),
+                                          None)
+         fcdialog.set_default_response(gtk.RESPONSE_ACCEPT)
+-        fcdialog.set_current_folder(self.config.get_default_image_dir(self.connection))
++        f = None
++        f = self.window.get_widget("storage-file-address").get_text()
++        if f != None and os.path.exists(f):
++            fcdialog.set_current_folder(f)
++        else:
++            fcdialog.set_current_folder(self.config.get_default_image_dir(self.connection))
+         fcdialog.set_do_overwrite_confirmation(True)
+         fcdialog.connect("confirm-overwrite", self.confirm_overwrite_callback)
+         response = fcdialog.run()
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virtManager/addhardware.py virt-manager-0.6.1/src/virtManager/addhardware.py
+--- virt-manager-0.6.1.old/src/virtManager/addhardware.py	2009-04-20 11:58:04.419675457 +0100
++++ virt-manager-0.6.1/src/virtManager/addhardware.py	2009-04-21 11:27:28.534588320 +0100
+@@ -650,7 +650,10 @@ class vmmAddHardware(gobject.GObject):
+             self.window.get_widget("storage-partition-address").set_text(part)
+ 
+     def browse_storage_file_address(self, src, ignore=None):
+-        folder = self.config.get_default_image_dir(self.vm.get_connection())
++        folder = None
++        folder = self.window.get_widget("storage-file-address").get_text()
++        if folder == None or not os.path.exists(folder):
++            folder = self.config.get_default_image_dir(self.vm.get_connection())
+         filename = self._browse_file(_("Locate or Create New Storage File"), \
+                                        folder=folder, confirm_overwrite=True)
+         if filename != None:
+/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virtManager/createpool.py virt-manager-0.6.1/src/virtManager/createpool.py
+--- virt-manager-0.6.1.old/src/virtManager/createpool.py	2009-04-20 11:58:04.390149915 +0100
++++ virt-manager-0.6.1/src/virtManager/createpool.py	2009-04-21 11:28:56.057511151 +0100
+@@ -20,6 +20,7 @@
+ 
+ import gobject
+ import gtk.glade
++import os
+ 
+ import traceback
+ import logging
+@@ -249,8 +250,12 @@ class vmmCreatePool(gobject.GObject):
+             self.window.get_widget("pool-source-path").set_text(source)
+ 
+     def browse_target_path(self, ignore1=None):
++        folder = None
++        folder = self.window.get_widget("pool-target-path").get_text()
++        if folder == None or not os.path.exists(folder):
++            folder = "/var/lib/libvirt"
+         target = self._browse_file(_("Choose target directory"),
+-                                   startfolder="/var/lib/libvirt",
++                                   startfolder=folder,
+                                    foldermode=True)
+         if target:
+             self.window.get_widget("pool-target-path").set_text(target)