Help needed: analyzing and filing installation/removal/upgrade bugs

I’ve been working on a piuparts-like tool call instest (yeah, crappy name) to test installation, removal and upgrade of packages. Compared to piuparts, it’s simpler and tries to make it easier to file bugs. However, running it on sid still raises ~3000 failures. So I’m seeking help to analyze those failures and file bugs.

The tasks are:

  • get a grasp on what instest does, the script used to analyze the results, and the current results (yes, I know there are some obvious false positives).
  • find possible improvements (isolate false positives or common error cases) and improve the scripts (no need to learn Ruby, I can help with that part)
  • file bugs (there are scripts – based on my archive rebuild ones – to do that efficiently)

If you want to help, just contact me at Debconf!

Skipping fsck checks during boot with CTRL-C

According to Murphy’s law, the fsck check that happens once every n boots always happens at the worst time. By default, using CTRL-C to abort it causes fsck to exit with an error, and the filesystem to be remounted read-only. It’s easy to change that in /etc/e2fsck.conf:

[options]
allow_cancellation = true

Debcamp+Debconf again! (update)

As I did since 2007, I will be attending Debconf again this year. I have been quite busy recently, and am lagging behind in some of my Debian work, so I plan to use Debconf to get stuff done, not just socialize and attend talks.

Here is my TODO list, basically by order of “willingness to do the work”. It’s probably too much for 9 days, so don’t hesitate to talk to me if you want to help with some items.

  • Switch the ruby1.9.1 package to a prerelease of Ruby 1.9.2. That package providing the development branch of the interpreter. That will be done while keeping the existing package name, as Ruby 1.9.1 and 1.9.2 are (supposed to be) compatible. It might be a bit confusing for users to have a ruby1.9.1 package that installs Ruby 1.9.2, but then we can just blame the upstream developers for using the same numbering space for “ruby compatibility level” and “ruby version”. Bonus: will fix 2 FTBFS on {kfreebsd-,}i386. ruby1.9.1 1.9.2~svn28788-1 uploaded, but it really means “ok, enough, let’s upload and see what happens”. There are some open issues on FreeBSD, and some patches that still require porting to that version.
  • Update the ruby1.8 package. There’s a few patches pending (including the “ruby is slow because of pthread” one). ruby1.8 1.8.7.299-2 uploaded, sync to Ubuntu requested.
  • Run an archive-wide test using instest again. instest is a piuparts re-implementation that is targetted at making it easy to file bugs about installation and removal failures. It’s nothing big, really, but already allowed to file 78 RC bugs a few months ago. Done, and call for help posted. Which raises another TODO item:
    • Process instest failures if nobody wants to help … Well, done partially. The number of issues found justifies that those tests are useful, so I’m a bit annoyed that nobody volunteered to help.
  • Run an archive rebuild. I did one last week-end mainly to provide food for RCBC, but there are some failures that haven’t been filed because they required more investigation. I also need to check back with various people about some custom rebuilds (newer GCC, etc). And I’ll probably also do a rebuild of Ubuntu maverick.Rebuild done, about 70 new RC bugs filed, and some cleanup done on old unreproducible bugs. Also did a rebuild with an updated hardening-wrapper for Raphael Geissert, and a rebuild of Ubuntu maverick on i386 and amd64 (results posted on ubuntu-devel@).
  • Do a ddpo-by-mail run. Last one was a longgg time ago. I have a few open requests about ddpo-by-mail that I’d like to address before spamming people again (for example, it shouldn’t report about merged bugs).Done, ~1300 emails sent.
  • Ultimate Debian Database work: merge the upload-history importer into UDD itself to drop the dependency on a script on merkel. Also address #540132 (strange info in the upload-history table). Make sure the changes to carnivore about DMs are compatible with the carnivore importer. All done!
  • Investigate how we could improve Ruby packaging with something like ruby-support. One of the requirements is to provide an easier way to support several Ruby versions.
  • Do some work on feed2imap. It got a few valid feature requests recently that I’d like to address in a 1.1 release.
  • Debian/Ubuntu work: add info about bugs with patches to the PTS now that this info is available in UDD thanks to Brian Murray’s work on the Launchpad side, and other pending work items from the Debian/Ubuntu BOF at UDS
  • Work on Bapase and the handling of poorly maintained and low-quality packages, resurrecting an old thread on debian-qa@
  • Do some packaging work: systemtap 1.3, tcsh, websec (long overdue!), and the usual pkg-ruby-extras shores. I also would like to take a look at the atlas FTBFS as I’m affected through hpcc.
  • Update developers-reference. I’m totally in lazy mode about that since the maintenance was transferred to debian-policy@, but I will try to address bugs with valid patches.

#debian-ubuntu on OFTC

If you are a Debian developer and need realtime interaction with an Ubuntu developer about the state of your packages in Ubuntu (or vice-versa), #debian-ubuntu on irc.oftc.net might be useful. I had forgotten about that channel, but it resurfaced during the discussions about improving communication between both projects.

EtherPad: web-based collaborative editor

I recently (during a UDS lightning talk) discovered EtherPad. It’s a collaborative editor (like gobby), but uses a browser instead of a standalone application. It’s free software (Google open sourced it after buying the company that was developing it), and there’s a free online instance at ietherpad.com. Setting up a new pad is as simple as going to http://ietherpad.com/foo and clicking Create Pad. It’s written in Java, and not packaged in Debian (yet).

XMPP Video calls with Nokia N900

So, this morning, I did my first video call over XMPP between two N900.

However, so far, I failed to do an XMPP video call from an N900 to something else. When I try to call pidgin on my laptop, pidgin simply crashes, but of course that’s not a serious bug if people can DOS your pidgin instance since, according to the Debian bug:

Assuming your XMPP settings require that users must authenticate with you before being able to send you messages, only your authenticated users would be able to freeze your client, assuming they knew you were actually affected by this bug.

The upstream pidgin bug hasn’t seen a lot of activity lately. :-(

Booting ISO or USB key images directly from Grub2?

I’m playing with the idea of booting ISO images and USB key images stored in a disk partition directly from Grub2. That would allow to install Linux or test liveCDs without even using a USB key. It seems that Grub2 has everything needed for that (with a combination of drivemap and chainloader), but I can’t seem to get it working and, as usual with boot stuff, it’s a pain to understand what’s happening.

Has somebody recently tried that, or can point me to a howto?

Receive Ubuntu bugs by mail with the Debian PTS

It is now possible to subscribe to Ubuntu bugmail for the packages you care about, without having to use Launchpad (and subscribe on a per-package basis there). This is implemented as a new opt-in Package Tracking System keyword: derivatives-bugs.

To subscribe for all your packages, use keyword [email] + derivatives-bugs (as documented in the Developers Reference). You might also want to subscribe to derivatives (Ubuntu diff, etc. also opt-in).

Of course, if other derivative distributions are interested in providing such data, don’t hesitate to contact me or the Debian QA team.

Also, if you are like me and never remember about subscribing to packages you maintain, you can use that UDD script to check for missing subscriptions.

“But why isn’t Debian using Launchpad?”

Due to my work on Ultimate Debian Database, I’m sometimes asked why Debian isn’t using Launchpad.

First, “using Launchpad” can mean two different things.

The first possibility is using Canonical’s instance of Launchpad. That would mean creating a Debian project on launchpad.net, and using Canonical’s infrastructure. Well, that’s clearly not a good idea. We (Debian) do not want to depend on Canonical to fix bugs or make enhancements that we require to improve Debian. For example, Canonical imposes the use of the Bazaar Version Control System in Launchpad: you simply can’t use Git instead (git-bzr hacks don’t count). We want to stay in control of our infrastructure, for obvious reasons.

So the other possibility would be to setup our own instance of Launchpad, given that Launchpad is now Free Software. However, it is not clear if it is actually possible: I was told by a Launchpad developer that they didn’t know of any external (outside Canonical) installation of Launchpad.

Even if this was possible, it is not clear at all that the Ubuntu infrastructure is superior to the Debian infrastructure. The Debian infrastructure has many nice features that are missing in Launchpad, for example version-tracking in the Bug Tracking System, which allows to track (by parsing the changelog) the versions of a package where a bug has been fixed or not (example with iceweasel).

So, when switching to Launchpad, we would have to reimplement quite a lot of needed features in in, with no clear benefit: the Debian infrastructure works fine, and is actively maintained.

It’s also interesting to note that while the Ubuntu infrastructure is centered on Launchpad, there are quite a lot of external services that are not integrated in Launchpad: the Ubuntu popularity contest, merges.u.c, patches.u.c, the various services on qa.ubuntuwire.org and qa.u.c, etc. With the Debian model, it is very easy to add a new service and get it integrated with the various dashboard (Debian Developer’s Packages Overview, Packages Tracking System). Within Ubuntu, those external services are really second-class citizens. All in all, the infrastructures of the two projects reflect their organizations: bazaar model for Debian, with an emphasis on collaboration between the services, controlled by Canonical for Ubuntu.