4 October 2002

linux.conf.au

Registrations are now open!

PyORBit

Fixed up handling of return values for all types. Now I need to look at the handling of arguments. The semantics of ORBit_small_invoke_stub are non trivial. Also fixed a bug in the marshalling of sequences to python types.

Tracked down and fixed one of the typelib bugs. Turned out to be a subtle bug in the IDL compiler.

30 September 2002

PyORBit

Started working on a new binding for ORBit2 about a week ago. The existing orbit-python port to ORBit2 is a little crufty, and doesn’t take advantage of the new features in ORBit2. So far things have looked fairly promising, but I have turned up a number of ORBit2 bugs related to the use of typelibs. Some of them are pretty weird (such as bug 93928 and bug 94513), while others indicate defficiencies in the current typelib implementation itself (bug 93725). I don’t know if I will be able to get it to a usable state when compiled with ORBit2 2.4.x, so I might have to wait til GNOME 2.2 before using these in the GNOME Python bindings.

Other than the bugs, I have a mostly working client side binding that generates stubs at runtime from typelibs, and have a little code for the server side. I am looking at doing a custom object adaptor at the moment, rather than getting it to work with the POA (it won’t prevent using POA in the future). The API would probably be as simple as “objref = create_servant(repo_id, instance)“, which would create and activate a new servant that delegated all method calls to instance (which could be of any class — the only constraint being that it implement the required methods), and returned an object reference. This should be enough for most cases.

Weird Bug Reports

Some people send in very weird bug reports. This morning, I received bug 94576 which seems to have nothing to do with the package it was filed against, has a stack trace from some weird custom app (I guess), and talks about Anna Kournikova a bit. I don’t know why people send in bug reports that are obviously useless — it is a waste of their time and mine.

7 September 2002

Egg

Did a bit of work on EggToolbar and got it into a state where I could use it in EggMenu. Felt good to work on these, as they had been neglected for a while. The toolbar works quite well now, and I brought the merge code for toolbars in EggMenu into parity with the menu merge code (now supports placeholders, etc).

PyGIMP

Yosh added a little bit of magic to the autogen script for GIMP so that if you have automake-1.6, it will optionally build PyGIMP. So it should be as simple as running “./configure --enable-python” on the gimp-1.3.9 tarball to install PyGIMP.

PyGIMP

Started working on the python bindings for gimp 1.3. It has been a long time since I had done much with that code (a lot of the code hadn’t been changed in 3 years), and it was a bit embarassing to see how bad some of it was …

I now have it mostly working, and updated to take advantage of new Python 2.2 features (given that pygtk for gtk 2.0 uses Python 2.2, there was no point in artificially limiting what constructs to use). Now I am using new style classes for all the various gimp objects (which means that issubclass(gimp.Layer, gimp.Drawable) is now true). It is almost at a stage where it could be added to the main tarball builds of gimp.