Published 2010-08-29 00:00:00

..It all started by having yet another look at the gir problem..... Keeping them up-to-date, and trying out the latest cool Gnome toys.

What has now become an essential weapon in my development toolkit is the app builder. Under the hood, it depends heavily on gobject inspection. Going forward, I'm keen to add support for clutter  and use more animation to allow you to focus on the critical information, like the preview or tree, zooming and scaling in a smart way.

However to do all of this requires that most libraries are not only up to date, but also have any critical annotation fixes applied. Previously I've  been able to cope with debian unstable, and a collection of gir files generated from git head. 

These gir files where generated in a virtual ubuntu box that is also used to generate the introspection documentation. I did initial spend some time trying to get a jhbuild both up and going for this, however it proved to be more trouble than I expected, especially problematic was my timing, just as most libraries started switching to gtk3 which resulted in the generated girs being incompatible with any of my desktop machines.

The result was every few months I would go in and update a few critical libraries, try to avoid updating into gtk3 only libraries, but leave the rest as is.

I got a little fed up with the situation this morning when I wanted to play with clutter on one of my desktop machines. I had to start wondering, why not just build debian packages directly from git head, set up a simple apt source server and use those packages with the associated working gir files instead...

You would have thought by now, someone would have solved this problem, as on the face of it, it does not sound too complex. However from what I could find no real solution exists.

The closest  currently us jhdebuild, a fork of jhbuild, hosted on ubuntu's launchpad site. This utilizes jhbuild database of packages, enabling the git pull and git clone to work, in theory. Unfortunately it appears that currently it only supports tarballs. After that it does a few debian specific tricks, first it uses apt to get the current release source package and build dependencies. Then it copies the debian directory into the git checkout, and runs two debian programs, one sets up the version number, the other buildds the packages.

It looks like it would be a really smart way of doing things, if only it wasn't written in python (which has never grown on my that much and is a topic of a rant one day..), and was held in a completely different version control system than the original jhbuild (making diff /merge practically impossible)

Anyway, it gave me the idea that writing a simple hack script in php (deb_build.php) to do basically the simple process of checkout, update  build release might not be that complex, after a little worth, I got it to generate libxml2 packages, the code is, where else, in my git repository, feel free to waste some time playing with it.....

Add Your Comment

Follow us on