Archiv für September 2010

PostgreSQL 9.0 final released

After 20 days of final polishing and maturing since the release candidate, the PostgreSQL team released the final 9.0 version today.

Hot off the press, I uploaded postgresql-9.0 final into Debian unstable; they will not go into Debian Squeeze, because Squeeze is frozen and it will take a long time to port all the packaged server side extensions to 9.0.

If you are on Ubuntu 10.04 LTS or Ubuntu 10.10, you can add my PostgreSQL backports for stable Ubuntu releases PPA, which will carry 9.0 until it can be moved to the official Ubuntu backports (i. e. when 9.0 goes into Ubuntu Natty).

Enjoy, and kudos to the PostgreSQL team!

Tags: , , , , ,

Simple udisks based automount daemon

For an embedded/thin client project without GNOME, KDE, or even full XFCE I needed a small daemon to automount USB sticks. Using the full gvfs/gdu/nautilus or Thunar stack is too heavyweight for my purposes, but a simple udev rule just doesn’t cut it — I need to mount these USB sticks for a particular user (permissions), and also want to do an action like pop up a window with the contents.

This finally provided me the opportunity to write something bigger than just a 10 line demo in Vala (well, it’s not that much bigger admittedly :-) ). Since that is my first real Vala project, it took quite a lot longer than anticipated; some areas of Vala are still a bit underdocumented, e. g. I spent some half an hour trying to find out how to set a result callback for an asynchronous function invocation. Mikkel Kamstrup Erlandsen suggested to just use a wrapper instead which uses yield, which works fine indeed. Mikkel, thanks for bearing with me!

Anyway, here it is: https://launchpad.net/udisks-automounter, complete with a first release, bzr branch (lp:udisks-automounter), and a package for Ubuntu 10.04 LTS in my PPA.

For avoidance of doubt, this won’t ever make sense on a GNOME/KDE/XFCE desktop, which already have their (much better developed) automounting services. But perhaps it’s useful for someone else with similar constraints.

Tags: , , , , , ,

What I do

It’s been a decade ago when I did my first steps with contributing to Free Software, about seven years when I joined Debian, and about 6 with Canonical and Ubuntu. Time for some reflection what I have done over these years!

Distribution Packaging and Maintenance

My first sponsored Debian upload ever was cracklib2, which seriously needed some love and was looking for a new maintainer. So in that upload I managed to close all outstanding bugs. Thanks to my mentor Martin Godisch about providing a lot of guidance for this!

Since then I’ve maintained various packages, where the most popular ones are certainly the free database server “PostgreSQL” (see next section) and the e-book management software “Calibre”.

“Maintaining” by and large means “making it really easy to get and use this software”. This decomposes to:

  • Packaging it in a way that a simple apt-get install makes the software work out of the box (as far as possible)
  • Provide a default configuration/customizations so that it integrates and plays well with the rest of the system; this includes the paths and permissions for log files, log rotation, debconf, configuration file standards, etc.
  • Be the front line for bug reports from users, sort, answer, and de-duplicate them, and either fix them myself, or forward useful bugs to upstream.
  • Providing security updates for stable releases
  • To some extent, help with the development of the software; this gets mostly driven by user demand, and of course my personal interests.

In August 2004 I got employed by Canonical to work full time on Ubuntu, which pretty much turned a hobby into a profession. I never regretted this in the past years, it’s an awesome job to do!

In principle I’m doing the same thing in Ubuntu as well: Bring stuff from developers to the people out there. Except with a different focus, in Ubuntu my daily bread and butter is the GNOME desktop and stuff around (and immediately below) it. And even though after a long day of bug triaging and debugging I feel a bit low-hearted (“50.000 bugs away from perfection”), when I take a step back and see how much the usage of Free Software in the world has grown since 2004, I am very proud of being part of Ubuntu, which certainly has its fair contribution and share in this growth. So what seemed like a crazy idea from Mark back in 2004 actually has made a remarkable progress.

In the beginning of Ubuntu I mostly sent back patches to the Debian bug tracker, but this evolved quite a bit on both sides: These days I try to keep “my” packages in sync and commit stuff directly to Debian, which works very well with e. g. the pkg-utopia team, which is responsible for HAL, udisks, upower, PolicyKit, and related packages. At this point I want to thank Michael Biebl for being such an awesome guy on the Debian side! Also, it seems that Debian has moved a fair bit away from the strong “Big Maintainer Lock” towards team based maintenance, so these days it is easier than ever to commit stuff directly to Debian for a lot of packages, without much fuss.

PostgreSQL

I have done a handful of changes to PostgreSQL, but these mostly concerned easy packaging and crash fixes, nothing out of the ordinary. I’m not really a PostgreSQL upstream developer.

The thing I am really proud of is the postgresql-common package, which is a very nice example what a distro can provide on top of upstream: If you install the upstream tarball, you have to manually care for creating clusters, providing a sensible configuration for them, set up SSL, set up log rotation, etc. With postgresql-common, this is all done automatically. The biggest feature it provides is a robust and automatic way of upgrading between major releases with the pg_upgradecluster tool, which takes care of a dozen corner cases and the nontrivial process of dumping the old cluster and reloading the new one. Also, you can effortlessy run several instances of the same version in parallel, so that you can e. g. have a production and a development instance, or try the new 9.0 RC1 while still running the 8.4 production one. (more details)

Crash Reporting with Apport

This has been a pet peeve of mine pretty much from day 1. Back in the old days, crashes in software were a pain to track down: many crashes are hard to reproduce, it takes ages to get useful information from bug reporters, and a lot of data cannot be recovered any more when you try to reproduce and analyze a crash after the fact.

With the growing demand for QA from both Canonical and Ubuntu, in 2006 I finally got some time to start Apport, which would make all this a lot easier: It intercepts crashes as they happen, collects the data that we as a developer need, and makes it very easy for the user to submit them as a bug report. This is accompanied by a backend service (called “retracers”) which would reprocess the bug reports by taking the core dump, reproducing a chroot with the packages and versions that the reporter had, installing the debugging symbols, and re-running gdb, to produce a fully symbolic stack trace.

See this bug report for how this looks like. Since then, tons of crashes were fixed, way more than we could ever have done “the old way” with asking users to rebuild with “-g -O0″, running gdb, etc.

By today, Apport has grown quite a bit: rich bug reports, per-package hooks, automatic duplication of crashes, interactive GUI elements in hooks, etc.

Plumbing Development

Handling hotpluggable hardware has always interested me, since the day when I got my first USB stick and it was ridiculously hard (from an user perspective) to use it:

    $ su -
    # mount -t vfat -o uid=1000 /dev/sda1 /mnt

My first go at this was to write pmount which would allow normal users to mount hotpluggable storage without root privileges and worrying about mount paths and options, and then integrate it into GNOME and HAL. Personally I abandoned it years ago, but it seems other people still use it, so I’m glad that Vincent Fourmond took over the maintenance now.

Since then, the entire stack evolved quite a bit: HAL grew to something useful and rather secure, and finally into some monstrous unmaintainable beast, which is why it was declared dead in 2008, and replaced with the “U” stack: udev, udisks, upower, etc. I enjoy hacking on that a lot, and since it’s part of my Desktop Team Tech Lead/Developer role in Canonical, I can spend some company time on it. so far I worked on bug fixes, small new features, and writing a rather comprehensive test suite for udisks (see my udisks commits so far). I also did a fair share of porting stuff away from HAL to the new stack, including some permanent commitments like maintaining the keymaps in udev.

GNOME

Before I started with Canonical I was never much of a GUI person: I was fully content with fvwm and a few xterms around it. But as an Ubuntu developer I do dogfooding, and thus I switched to GNOME for my day to day work. It didn’t take long before I really fell in love with it!

Similar to my Debian packages, my upstream involvement with GNOME is mostly integration and bug fixing. As already explained, we get a looooot of bug reports, so my focus is mostly on bug fixing. To date, I sent 93 patches to bugzilla. Since January 2010 I became a committer, so that it’s easier for me to get patches upstream.

Debugging problems and fixing bugs is a pretty tedious task, but I still enjoy the rewarding nice feeling when you finally tracked down something and can close a bug with 50 duplicates, and you have made people’s life a little bit easier from now on.

Tags: , , , , , , ,

Zurück von der Donauradtour

Dresden hat Netti und mich wieder! Gestern hat der IC uns und unsere Fahrräder komfortabel wieder von Wien nach Dresden gebracht, nach nur etwas mehr als einer Urlaubswoche.

Wir sind am Freitag den 3. September in Passau gestartet, und dann bis Mittwoch entlang der Donau geradelt. Die Nächte haben wir meistens im Zelt verbracht; der schönste Campingplatz war in Sommerau, quasi bei einer Familie im riesigen Garten:

Schlögener Schlinge Campingplatz Sommerau

Am Mittwoch Mittag sind wir nach 340 Fahrradkilometern dann in der Stadt der k.u.k.-Monarchie, Mozart und Sachertorte angekommen, wo wir fortan in einer Pension im Stadtteil Fünfhaus übernachteten. So haben wir dann den Rest der Zeit bis Freitag abend mit viel Kultur verbracht.

Am Mittwoch nachmittag besuchten wir das Hundertwasserhaus und die dazugehörige Ausstellung. An seinen Bildern haben mich vor allem die fantastisch strahlenden und leuchtenden Farben beeindruckt, dafür hatte Hundertwasser ein göttliches Talent. Sein oft naiver und verspielter, manchmal auch sehr verworrener Malstil ist für mich als Kunstbanausen nicht immer einfach zu interpretieren oder auch nur zu erkennen, aber beeindruckt haben sie mich allemal. Dafür waren die Gaumenfreuden in dem Cafe-Haus am Abend dann umso konkreter – die Wiener Küche und vor allem die süßen und leckeren Nachtische sind einfach Weltklasse!

Der Hofburg und der Innenstadt haben wir den Donnerstag gewidmet, wir haben an diesem Tag die Vorführung der Spanischen Reitschule und dann noch eine Menge Museen geschafft: Schatzkammer, Schmetterlingshaus, Nationalbibliothek, Esperanto- und Globen-Museum, und zu guter Letzt noch den Stephansdom.

Hofburg Schmetterlinge

Nationalbibliothek Stephansdom

Nach einem reichhaltigen Dinner im Restaurant Gutenberg hatten sich unsere Füße erstmal genug erholt, und wir haben uns für die Nacht in Richtung Prater aufgemacht, Wien’s riesigem Vergnügungspark. Auf dem berühmten Riesenrad hat man eine fantastische Sicht über das nächtliche Wien, und konnte sich auch schon mal die teils lustigen, teils wirklich haarsträubenden Attraktionen des Praters anschauen. Wir haben uns auf die beiden Rafting-Bahnen und eine Achterbahn gewagt, und sind zwischendurch noch in ein lustiges Spiegel/Wackelraum/Labyrinth-Kabinett gegangen und haben uns im Bogen- und Luftgewehrschießen geübt.

Prater Prater

Am Donnerstag war dann das Schloss Schönbrunn an der Reihe, der Sitz der k.u.k-Monarchen. Das Schloß selbst ist natürlich schon sehr beeindruckend, bei dem Rundgang haben wir sehr viel über die Geschichte von Franz Josef, Maria Theresia, und der anderen Habsburger erfahren, und einen Eindruck von deren Lebensstil bekommen. Aber auch drumherum gab es viel zu entdecken, im Schloßgelände gibt es einen Irrgarten, einen Zoo, und natürlich auch die Hofbäckerei, wo wir in die Geheimnisse des Wiener Apfelstrudels eingeweiht wurden.

Gloriette

Für Interessierte habe ich die komplette Foto-Galerie hochgeladen.

Tags: , , , , , , ,

PostgreSQL 9.0 RC1 available for testing

PostgreSQL 9.0 with a whole lot of new features and improvements is nearing completion. The first release candidate was just announced.

As with the beta versions, I uploaded RC1 to Debian experimental again. If you want to test/use them on Ubuntu 10.04 (Lucid Lynx), you can get packages from my “PostgreSQL backports for stable Ubuntu releases” PPA. Please let me know if you need them for other releases.

Just for the records, both Debian 6.0 “Squeeze” and Ubuntu 10.10 “Maverick Meerkat” will release and officially support 8.4 only, as 9.0 is too late for the feature freezes of both. Also, it will take quite some time to update all the packaged extensions to 9.0. As usual, 9.0 will be provided as official backports for both Debian and Ubuntu.

Happy testing!

Tags: , , ,