[packagekit] packagekit-glib bindings

Richard Hughes hughsient at gmail.com
Wed Aug 26 00:56:13 PDT 2009


The existing PackageKit-glib bindings are beginning to limit what I
can do with client applications. The biggest problems are:

* A lot of the dbus calls are sync, which slows down application
startup and user input "snappyness"
* A lot of the methods are not cancellable
* It's very hard to add details and update details about a set of
packages, without caching all the data in the client
* Having to "reset" a single heavyweight client instance before doing
each operation (mitigated in some respects with PkClientPool)

Now, I'm going to start working on a simple "glib2" library, which
will have about 2% of the functionality of the existing glib library,
to experiment with adding GCancellable and GAsyncReadyCallback
parameters to the methods, properly. It's quite a bit of work as even
things like GetTid() and SetLocale() have to be done asynchronously.

As time progresses, I'll slowly add more functionality to the glib2
library, and for 0.6.x remove the glib library and use the glib2
library. When the glib2 lib is feature complete, I'll deprecate the
old library. That's probably quite a few months from now, so existing
client code doesn't have to worry.

So, if you start seeing some odd commits in git, it's safe to ignore
them for now. If you've got ideas or feedback about how the new
library should look, please shout here, or look at the code and
suggest better ways of doing things. Thanks.

Richard.



More information about the PackageKit mailing list