[virt-tools-list] virt-manager handling of Gtk command line arguments

Leonardo Augusto Guimarães Garcia lagarcia at linux.vnet.ibm.com
Mon Aug 12 21:10:46 UTC 2013

Hello everyone,

Right now, when someone tries to start a second instance of 
virt-manager, the primary instance will be brought to front. This is 
managed by Gtk and I am really fine with that for the majority of the 
use cases.

When someone specifies a --show-* option and there is already a 
virt-manager instance running, however, it would be desirable that the 
running instance of virt-manager opens the corresponding window, as 
suggested by Cole some time ago. I want to do a major refactoring on how 
we handle command line arguments in virt-manager (using the support 
provided by Gtk) in order to support that, but while I was working on 
that, I faced the following comment in virt-manager code:

     # The never ending fork+gconf/gsettings problems now require
     # us to import Gtk before the fork. This creates a funny race,
     # since we need to parse the command line arguments to know if
     # we need to fork, but need to import Gtk before cli processing
     # so it can handle --g-fatal-args. We strip out our flags first
     # and pass the left overs to gtk

Is this still necessary/true? This code is currently being called after 
the fork (it was called before the fork in virt-manager-0.9.x). Also, it 
seems that Gtk 3 can handle its arguments pretty well (I don't know how 
it was in the past). I wrote a simple test.py program:

import sys
print sys.argv
from gi.repository import Gtk
print sys.argv

And if I run "./test.py --foo --bar --g-fatal-warnings", the output is 
the following:

[laggarcia at localhost ~]$ ./test.py --foo --bar --g-fatal-warnings
['./test.py', '--foo', '--bar', '--g-fatal-warnings']
['./test.py', '--foo', '--bar']

Hence, I think we can just import Gtk in the beginning of the code and 
it will correctly handle its arguments. Do you agree? Can I proceed with 
this cleanup and send a patch?

Best regards,

Leonardo Garcia

More information about the virt-tools-list mailing list