I’ve been testing out Ekiga recently, and so far the experience has been a bit hit and miss.

  • Firewall traversal has been unreliable. Some numbers (like the SIPPhone echo test) work great. In some cases, no traffic has gotten through (where both parties were behind Linux firewalls). In other cases, voice gets through in one direction but not the other. Robert Collins has some instructions on setting up siproxd which might solve all this though, so I’ll have to try that.
  • The default display for the main window is a URI entry box and a dial pad. It would make much more sense to display the user’s list of contacts here instead (which are currently in a separate window). I rarely enter phone numbers on my mobile phone, instead using the address book. I expect that most VoIP users would be the same, provided that using the address book is convenient.
  • Related to the previous point: the Ekiga.net registration service seems to know who is online and who is not. It would be nice if this information could be displayed next to the contacts.
  • Ekiga supports multiple sound cards. It was a simple matter of selecting “Logitech USB Headset” as the input and output device on the audio devices page of the preferences to get it to use my headset. Now I hear the ring on my desktop’s speakers, but can use the headset for calls.
  • It is cool that Ekiga supports video calls, but I have no video camera on my computer. Even though I disabled video support in the preferences, there is still a lot of knobs and whistles in the UI related to video.

Even though there are still a few warts, Ekiga shows a lot of promise. As more organisations provide SIP gateways become available (such as the UWA gateway), this software will become more important as a way of avoiding expensive phone charges as well as a way of talking to friends/colleagues.

Firefox Ligature Bug Followup

Thought I’d post a followup on my previous post since it generated a bit of interest. First a quick summary:

  • It is not an Ubuntu Dapper specific bug. With the appropriate combination of fonts and pango versions, it will exhibit itself on other Pango-enabled Firefox builds (it was verified on the Fedora build too).
  • It is not a DejaVu bug, although it is one of the few fonts to exhibit the problem. The simple fact is that not many fonts provide ligature glyphs and include the required OpenType tables for them to be used.
  • It isn’t a Pango bug. The ligatures are handled correctly in normal GTK applications on Dapper. The bug only occurs with Pango >= 1.12, but that is because older versions did not make use of the OpenType tables in the “basic” shaper (used for latin scripts like english).
  • The bug only occurs in the Pango backend, but then the non-Pango renderer doesn’t even support ligatures. Furthermore, there are a number of languages that can’t be displayed correctly with the non-Pango renderer so it is not very appealing.

The firefox bug is only triggered in the slow, manual glyph positioning code path of the text renderer. This only gets invoked if you have non-default letter or word spacing (such as justified text). In this mode, the width of the normal glyph of the first character in the ligature seems to be used for positioning which results in the overlapping text.

It seems that the bug may be fixed in the Firefox 1.6 series, but if that fix can’t be backported easily in time for Dapper, it might be easier to switch to a different default font that doesn’t contain the ligatures (such as Bitstream Vera). That would certainly reduce the chance of the bug occurring.

Annoying Firefox Bug

Ran into an annoying Firefox bug after upgrading to Ubuntu Dapper. It seems to affect rendering of ligatures.

At this point, I am not sure if it is an Ubuntu specific bug. The current conditions I know of to trigger the bug are:

  • Firefox 1.5 (I am using the 1.5.dfsg+ package).
  • Pango rendering enabled (the default for Ubuntu).
  • The web page must use a font that contains ligatures and use those ligatures. Since the “DejaVu Sans” includes ligatures and is the default “sans serif” font in Dapper, this is true for a lot of websites.
  • The text must be justified (e.g. use the “text-align: justify” CSS rule).

If you view a site where these conditions are met with an affected Firefox build, you will see the bug: ligature glyphs will be used to render character sequences like “ffi“, but only the advance of the first character’s normal glyph is used before drawing the next glyph. This results in overlapping glyphs

It also results in a weird effect when selecting text, since the ligatures get broken appart if the selection begins or ends in the middle of the ligature, causing the text to jump around.

I wonder if this bug affects the Firefox packages in any other distributions, or is an Ubuntu only problem?


I’ve been in London for a bit over a week now at the Launchpad sprint. We’ve been staying in a hotel near the Excel exhibition centre in Docklands, which has a nice view of the docs and you can see the planes landing at the airport out the windows of the conference rooms.

I met up with James Bromberger (one of the two main organisers of linux.conf.au 2003) on Thursday, which is the first time I’ve seen him since he left for the UK after the conference.

There has been a lot of interesting stuff going on so far, some of which is already live on the production site now. Expect to see better integration with the bzr branch management features in the future.

Bugzilla to Malone Migration

The Bugzilla migration on Friday went quite well, so we’ve now got all the old Ubuntu bug reports in Launchpad. Before the migration, we were up to bug #6760. Now that the migration is complete, there are more than 28000 bugs in the system. Here are some quick points to help with the transition:

  • All bugzilla.ubuntu.com accounts were migrated to Launchpad accounts with a few caveats:
    1. If you already had a Launchpad account with your bugzilla email address associated with it, then the existing Launchpad account was used.
    2. No passwords were migrated from Bugzilla, due to differences in the method of storing them. You can set the password on the account at https://launchpad.net/+forgottenpassword.
    3. If you had a Launchpad account but used a different email to the one on your Bugzilla account, then you now have two Launchpad accounts. You can merge the two accounts at https://launchpad.net/people/+requestmerge.
  • If you have a bugzilla.ubuntu.com bug number, you can find the corresponding Launchpad bug number with the following URL:


    This will redirect to the Launchpad bug watching that bugzilla bug. This URL can easily be used to make a Firefox keyword bookmark.

  • You can file bugs on Ubuntu at https://launchpad.net/distros/ubuntu/+filebug. Note that the form expects a source package name rather than a binary package name. If you only have a binary package name, you can use the following command to find the source package name:

    apt-cache show $packagename | grep ^Source:

    We’ll make it easier to enter bugs when you only know the binary package name in the future.

  • The Launchpad data model for bugs differs from Bugzilla in that a single bug can be targetted at multiple packages or products (internally, we call these bug tasks). To change information about a bug task (source package name, assignee, status, priority, severity, etc), you must first click on the bug target in the “fix requested in” table at the top of the bug page.

There are still a few issues that need to be ironed out. The mailing lists subscribed to most Ubuntu bugs are not yet properly configured to accept mail from Launchpad, so result in “held for moderation” messages. These issues should get fixed shortly.

Switch users from XScreenSaver

Joao: you can configure XScreenSaver to show a “Switch User” button in it’s password dialog (which calls gdmflexiserver when run). This lets you start a new X session after the screen has locked. This feature is turned on in Ubuntu if you want to try it out.

Of course, this is not a full solution, since it doesn’t help you switch to an existing session (you’d need to guess the correct Ctrl+Alt+Fn combo). There is code in gnome-screensaver to support this though, giving you a list of sessions you can switch to.

Moving from Bugzilla to Launchpad

One of the things that was discussed at UBZ was moving Ubuntu’s bug tracking over to Launchpad. The current situation sees bugs in main being filed in bugzilla while bugs in universe go in Launchpad. Putting all the bugs in Launchpad is an improvement, since users only need to go to one system to file bugs.

I wrote the majority of the conversion script before the conference, but made a few important improvements at the conference after discussions with some of the developers. Since the bug tracking system is probably of interest to people who weren’t at the conf, I’ll outline some of the details of the conversion below:

  • We are only migrating the open bugs — the existing bugzilla will remain available to read those bugs though.
  • Any bugzilla user account associated with an open bug (asignee, reporter, cc, qa contact or commenter) will be imported into Launchpad. If you already have a Launchpad account but use a different email for your bugzilla account, you have the following options:
    1. Add your bugzilla email to your Launchpad account.
    2. In bugzilla, change your email to one of the addresses registered to your Launchpad account.
    3. After the migration, merge the extra account into your existing account.

    Note that passwords are not migrated, because Launchpad uses a different password hashing algorithm to Bugzilla

  • All comments and attachments are imported.
  • Bugs are filed against the appropriate package under the “Ubuntu” distribution in Launchpad.
  • A bug watch is created, pointing at the original Bugzilla bug, so you can see any information not migrated.
  • If the bug was marked UPSTREAM and a bug tracker URL is included in the bugzilla URL field, then we attempt to create a bug task against the upstream product and link it to the remote bug. This depends on the upstream product existing and being linked to the package, so doesn’t always succeed. This feature was implemented to keep Sebastien happy, 68% of the UPSTREAM bugs are assigned to him.
  • Some of the bugzilla bugs are actually imported from debbugs. For these bugs, a bug task will be filed against Debian linked to the appropriate debbugs bug.

There are a few other things that need completing on the production Launchpad server before we can do the migration, but we should have a test import done on the staging server tomorrow some time.

Avahi on Breezy followup

So after I posted some instructions for setting up Avahi on Breezy, a fair number of people at UBZ did so. For most people this worked fine, but it seems that a few people’s systems started spewing a lot of network traffic.

It turns out that the problem was actually caused by the zeroconf package (which I did not suggest installing) rather than Avahi. The zeroconf package is not needed for service discovery or .local name lookup, so if you are at UBZ you should remove the package or suffer the wrath of Elmo.