GTG

GTG 0.3 is not compatible with GNOME Keyring 3.6, does not start

Bug #1086663 reported by Jeff Fortin Tam
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
GTG
Fix Released
Undecided
Unassigned

Bug Description

This is what immediately happens when I try starting GTG 0.3 in Fedora 18. From the looks of the traceback, it seems as if the gnome keyring API has changed recently and GTG does not account for it.

2012-12-05 00:06:40,723 - WARNING - __init__:__init__:77 - Backend backend_evolution could not be loaded: No module named evolution
2012-12-05 00:06:40,724 - WARNING - __init__:__init__:77 - Backend backend_twitter could not be loaded: No module named tweepy.models
2012-12-05 00:06:40,725 - WARNING - __init__:__init__:77 - Backend backend_launchpad could not be loaded: No module named launchpadlib.launchpad
2012-12-05 00:06:40,745 - WARNING - __init__:__init__:77 - Backend backend_rtm could not be loaded: No module named dateutil.tz
2012-12-05 00:06:40,745 - WARNING - __init__:__init__:77 - Backend backend_mantis could not be loaded: No module named suds.client
Traceback (most recent call last):
  File "/usr/bin/gtg", line 85, in <module>
    main()
  File "/usr/bin/gtg", line 81, in main
    sys.exit(gtg.main(options, args))
  File "/usr/lib/python2.7/site-packages/GTG/gtg.py", line 118, in main
    ds, req = core_main_init(options, args)
  File "/usr/lib/python2.7/site-packages/GTG/gtg.py", line 145, in core_main_init
    backends_list = BackendFactory().get_saved_backends_list()
  File "/usr/lib/python2.7/site-packages/GTG/backends/__init__.py", line 177, in get_saved_backends_list
    self.restore_backend_from_xml(dic)
  File "/usr/lib/python2.7/site-packages/GTG/backends/__init__.py", line 158, in restore_backend_from_xml
    xp.getAttribute(param_name), param_type)
  File "/usr/lib/python2.7/site-packages/GTG/backends/genericbackend.py", line 409, in cast_param_type_from_string
    return Keyring().get_password(int(param_value))
  File "/usr/lib/python2.7/site-packages/GTG/tools/keyring.py", line 46, in get_password
    item_info = gnomekeyring.item_get_info_sync(self.keyring, item_id)
gnomekeyring.BadArgumentsError

Revision history for this message
Jeff Fortin Tam (kiddo) wrote :

From discussing with Izidor, it seems my hunch is right and that this is because of an API break in the keyring.

A proper solution is Izidor's work towards switching everything to gobject introspection, but this does not provide an immediate fix.

However, there is a workaround. The current module checks for the presence of gnomekeyring, and if it fails to import, it uses a fallback keyring module, which works fine. The problem is of course that gnomekeyring is imported correctly, but the API changed so it can't be used.

As per our discussion, the only way to provide a fix for users until the next release is to patch tools/keyring.py so that it looks like this:

#try:
# import gnomekeyring
#except ImportError:
# gnomekeyring = None
# As per discussion with upstream, this is a silly workaround for LP bug #1086663,
# because 0.3 does not match the changed keyring API:
gnomekeyring = None

Jeff Fortin Tam (kiddo)
Changed in gtg:
status: New → Fix Released
milestone: none → 0.4
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.