August 01, 2007

ZYpp, bindings and applets.

ZYpp

We are close to release the last alpha of 10.3. This will be the second one containing a much improved package management stack.

In the last weeks we have been squashing bugs. Most of them show up when we integrated all the pieces together (like YaST and the installation ).

A couple of small features are now showing up. The ability to use variables in repository urls is now in. Only $arch and $basearch are implemented in svn right now. This will allow for easier repository maintenance. We will try to implement all relevant variables for SUSE Linux specific features, but our strategy is to provide maximum compatibility with other tools like YaST and smart, so expect their relevant variables to be there too.

Bindings

Lot of time ago, I created a prototype of ruby bindings for libzypp. Klaus improved them a lot. After the refactoring, it was all the time more difficult to catch up with the changes using hand written binding code.

Time later I tried a new approach and tried with SWIG. What seemed impossible at the beginning later turned more real, when I quickly was able to run the old bindings simple examples. Most of the trick was about feeding “clean” interfaces to SWIG, which usually got confused with all the black magic and bleeding edge C++ techniques used in the library.

The last weeks, Arvin has been giving them lot of love. My first woooho! was when he created the python subdirectory in examples/. Not that I like python. But having ZYpp running in the most popular languages will be a nice added value. Other languages will come as we find people mastering the SWIG typemaps for those.

Applets

Other application that has got tons of love for 10.3 is the openSUSE updater applet collection. Well, the collection is just 2. If you remember, this applet has its origin in a Google SOC Project by Narayan Newton, which I hacked later to provide a backend using libzypp. Later Jano introduced the Gnome version.

Now we have versions for both desktops. Before jumping into the libzypp refactoring I tweaked the KDE version to use kparts, KDE’s component technology, for the backends. Thomas has been working on it since then, fixing most bugs and giving it a fresh and polished look. On the other desktop, Joerg has been enhancing the Gnome version as well. Both are improving the experience of installing updates, with some advice from the UX team.