Thanks! I merged with some small modifcations and pyflake fixes into lp:~mvo/software-center/packagekit-backend. I moved the backend code into the gtk3 version of s-c as it seems like there are just too many issues mixing the old gtk2/pygtk and pygi code. This should be fine as the gtk3 version is actually pretty good now. I have a questions: - in line 578 "package" is assigned but not used, what is this needef for? I like that test_pkginfo.py now tests both implementations! However when I run it it segfaults on my up-to-date oneiric box: #0 0x000000000045f0b5 in insertdict (mp=0x4cd8c00, key='firefox', hash=2252328806807869700, value=) at ../Objects/dictobject.c:526 #1 0x0000000000460496 in PyDict_SetItem (op={}, key=, value=) at ../Objects/dictobject.c:775 #2 0x00000000004b74b5 in PyEval_EvalFrameEx (f=, throwflag=) at ../Python/ceval.c:1706 #3 0x00000000004bcced in PyEval_EvalCodeEx (co=0xd2d730, globals=, locals=, args=, argcount=, kws=, kwcount=0, defs=0xd324e8, defcount=2, closure=0x0) at ../Python/ceval.c:3253 #4 0x00000000004b69db in fast_function (nk=, na=2, n=, pp_stack=0x7fffffffb9a0, func= ) at ../Python/ceval.c:4117 #5 call_function (oparg=, pp_stack=0x7fffffffb9a0) at ../Python/ceval.c:4042 #6 PyEval_EvalFrameEx (f=, throwflag=) at ../Python/ceval.c:2666 #7 0x00000000004b6cf7 in fast_function (nk=, na=, n=, pp_stack=0x7fffffffbae0, func= ) at ../Python/ceval.c:4107 #8 call_function (oparg=, pp_stack=0x7fffffffbae0) at ../Python/ceval.c:4042 #9 PyEval_EvalFrameEx (f=, throwflag=) at ../Python/ceval.c:2666 #10 0x00000000004b6cf7 in fast_function (nk=, na=, n=, pp_stack=0x7fffffffbc20, func= ) at ../Python/ceval.c:4107 #11 call_function (oparg=, pp_stack=0x7fffffffbc20) at ../Python/ceval.c:4042 #12 PyEval_EvalFrameEx (f=, throwflag=) at ../Python/ceval.c:2666 #13 0x00000000004bcced in PyEval_EvalCodeEx (co=0x7ffff7e1aeb0, globals=, locals=, args=, argcount=, kws=, kwcount=0, defs= 0x7ffff7e477a8, defcount=1, closure=0x0) at ../Python/ceval.c:3253 #14 0x0000000000449098 in function_call (func=, arg= (, distro=) at remote 0x51b1b40>, _cleanups=[], _type_equality_funcs={: 'assertListEqual', : 'assertTupleEqual', : 'assertDictEqual', : 'assertSetEqual', : 'assertSetEqual', : 'assertMultiLineEqual'}, _resultForDoCleanups=, dots=True, skipped=[], _mirrorOutput=False, stream=<_WritelnDecorator(stream=) at remote 0xe8f050>, testsRun=7, buffer=None, _original_stderr=, showAll=False, _stdout_buffer=None, _stderr_buffer=None, _moduleSetUpFailed=False, expectedFailures=[], errors=[], descriptions=True, _previousTestClass=, unexpectedSuccesses=[], failu...(truncated), kw={}) at ../Objects/funcobject.c:526 Do I need a more up-to-date glib or anything like this?