Desktop tool for managing virtual machines via libvirt
Go to file
Daniel P. Berrange 3c3237b951 Convert to use GTK3 and GObject Introspection bindings
Switch over to use GObject introspection bindings for all python
modules related to GObject/GTK3/etc. It is not possible to mix
and match old pyggtk/pygobject manual bindings with new introspection
based bindings so it must be all changed in one go.

Imports like

    import gtk

Change to

    from gi.repository import Gtk

The vmmGObject class is changed to always inherit from GObject.GObject
There is no compelling reason to avoid a GObject dep for the
virt-manager TUI & it horribly messed up the code.

Signal declarations are changed from

  vmmChooseCD.signal_new(vmmChooseCD, "cdrom-chosen", [object, str])

To

     __gsignals__ = {
        "cdrom-chosen": (GObject.SignalFlags.RUN_FIRST, None, [object, str])
    }

which is required by new GObject bindings

Most of the rest of the change is simply dealing with renamed
constants / classes.

Alot of legacy compat code was removed - ie helpers which
check to see if certain GTK2 methods are available are no
longer required since we're mandating GTK3 only.

The event loop is replaced with LibvirtGLib's event loop.

Still todo

 - Rip out all DBus stuff & make vmmEngine class inherit GtkApplication
   which provides unique support & DBus method handling
 - Switch to use LibvirtGConfig & LibvirtGObject for libvirt interaction
 - Possibly switch to Python 3 too ?
 - Figure out why GNOME keyring is missing Introspection support

My suggestion is that the standalone GIT repo for virt-install
only live on as a support branch for legacy platforms.

A stable-0.9 branch of virt-manager can be kept for legacy PyGtk2
based virt-manager releases.

The virt-manager master branch should exclusively use GObject
inspection and ideally Python3 and contain both the virt-manager
and virt-install codebases in one since they are intimately
related to each other & using separate GIT repos has needlessly
complicated life for everyone.

crobinso:
    Some locking fixes
    Misc cleanups and dropping now-useless code
    Fix dbus usage
    Fix graph cell renderer regression
    Fix a couple tooltip issues
2013-04-03 18:13:24 -04:00
.tx Add transifex config, update docs 2011-03-15 15:05:23 -04:00
docs Add transifex config, update docs 2011-03-15 15:05:23 -04:00
help help: Use a valid category 2010-05-13 11:26:07 -04:00
icons Add new app icon and massively reorg our icon folder 2011-07-12 14:35:33 -04:00
m4 Hooked up David Malcolm's 'sparkline' widget for CPU display 2006-06-26 17:17:45 -04:00
man Update some --help descriptions 2012-02-20 13:09:00 -05:00
po Prep for release 0.9.5 2013-04-01 07:36:57 -04:00
src Convert to use GTK3 and GObject Introspection bindings 2013-04-03 18:13:24 -04:00
tests Convert to use GTK3 and GObject Introspection bindings 2013-04-03 18:13:24 -04:00
.gitignore Make autogen.sh give me a usable dist on F17 2012-07-09 16:44:47 -04:00
ABOUT-NLS Major rework of i18n build integration to deal with bz 229324 2007-05-18 12:14:33 -04:00
AUTHORS Allow empty cpu model 2013-03-25 13:25:46 -04:00
autobuild.sh Add simple INSTALL instructions 2010-11-30 10:29:42 -05:00
autogen.sh configure: make us a non-gnu app 2012-10-18 15:20:17 -04:00
ChangeLog Empty the 'ChangeLog', point to gitweb 2011-03-15 11:47:12 -04:00
configure.ac Prep for release 0.9.5 2013-04-01 07:36:57 -04:00
COPYING Refresh GPL text with latest FSF address & fix spec file license tag 2007-11-20 11:12:20 -05:00
COPYING-DOCS Initial cut at help infrastructure. Help builds and displays, but says nothing. Now we can start filling in content. 2007-03-02 16:24:35 -05:00
HACKING HACKING: Mention pep8 dep 2011-07-18 14:10:29 -04:00
INSTALL configure: make us a non-gnu app 2012-10-18 15:20:17 -04:00
INSTALL.autotools configure: make us a non-gnu app 2012-10-18 15:20:17 -04:00
Makefile.am Add new app icon and massively reorg our icon folder 2011-07-12 14:35:33 -04:00
NEWS Prep for release 0.9.5 2013-04-01 07:36:57 -04:00
omf.make Update omf.make and xmldocs.make to fix distcheck 2010-03-15 13:28:55 -04:00
README configure: make us a non-gnu app 2012-10-18 15:20:17 -04:00
TODO Update repo links and crufty docs 2011-03-15 11:47:12 -04:00
virt-manager.spec.in Convert to use GTK3 and GObject Introspection bindings 2013-04-03 18:13:24 -04:00
xmldocs.make Update omf.make and xmldocs.make to fix distcheck 2010-03-15 13:28:55 -04:00

 Virtual Machine Manager
 =======================

This application provides a graphical tool for managing virtual machines
via the libvirt library.

The front end of the application uses the PyGTK / Glade libraries for
all user interaction components. The back end uses libvirt for managing
Xen, QEMU & KVM virtual machines. The UI is primarily tested with Xen
and QEMU, but is intended to be portable to any virtualization backend
libvirt supports. So when libvirt is ported to UML / VMware / etc the
UI should not require any significant changes to deal with these drivers.

Terminology
-----------

In prose this app should be referred to as 'Virtual Machine Manager'.
For source / RPM packaging, & the command name, it is called by the
shortened form 'virt-manager'

Pre-requisite software
----------------------

Where versions are noted below these are the versions tested to definitely
work. For some of them you may be able to run with earlier releases, so
please report any success to the mailing lists

 python  >= 2.4
 pygtk2 >= 1.99.12-6
 gnome-python2-gconf >= 1.99.11-7
 libvirt-python >= 0.4.0
 dbus-python >= 0.61
 gnome-keyring >= 0.4.9
 gnome-python-desktop >= 2.15.4
 libxml2-python >= 2.6.23
 vte >= 0.12.2
 gtk-vnc >= 0.0.1
 python-virtinst >= 0.300.0
 PolicyKit >= 0.6

The latter is available from

http://git.fedorahosted.org/git/python-virtinst.git

Contact
-------

All comments / suggestions / patches should be directed to the virt-tools-list
mailing list:

  http://www.redhat.com/mailman/listinfo/virt-tools-list

For bug reporting info, see:

http://virt-manager.org/page/BugReporting

There are further project details on the website:

  http://virt-manager.org/

Submitting patches
------------------

Patches should be submitted either as unified diffs:

   tar zxvf virt-manager-X.Y.Z.tar.gz
   cp -a virt-manager-X.Y.Z virt-manager-X.Y.Z-myfeature
   cd virt-manager-X.Y.Z-myfeature
   ... make some changes ..
   cd ..
   diff -ruN virt-manager-X.Y.Z virt-manager-X.Y.Z-myfeature \
      > myfeature.patch

Alternatively use git and submit a diff against the main source repository:

   git clone git://git.fedorahosted.org/git/virt-manager.git
   cd virt-manager
   ... make your changes ...
   git commit -a -m "Some changelog message"
   git show > my_feature.patch

Then mail the 'my_feature.patch' file to the virt-tools-list@redhat.com list,
with [PATCH] and a brief description in the subject.

Using git format-patch and/or git send-email is also fine.

Related software
----------------

Links which are relevant:

  http://libvirt.org
  http://www.linux-kvm.org
  http://xensource.com/xen/
  http://pygtk.org/
  http://gtk.org/
  http://gtk-vnc.sourceforge.net/

Copyright /  License
--------------------

Unless otherwise noted, all the code for the Virtual Machine Manager
is covered under the GPL, and Copyright (C) Red Hat.

-- End of broadcast!