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.

RC bugs of the week

I just couldn’t resist… I joined the game, but did it the other way around.

I could only file 51 new FTBFS (Fail To Build From Source) bugs this time. Looks like Squeeze is getting closer!

I’ve also been doing rebuilds of Ubuntu lucid. There are currently 561 packages that fail to build from source in lucid/amd64, versus 430 in sid/amd64 (I will start rebuilding squeeze instead of sid after the freeze). Surprisingly, only 131 packages fail in both. I would have expected that number to be much higher.

The 51 new FTBFS bugs:
#573648: gnome-chemistry-utils: FTBFS: Nonexistent build-dependency: libgoffice-0-8-dev
#573649: …/api/package-list is no longer compressed
#573650: …/api/package-list is no longer compressed
#573651: virt-top: FTBFS: configure: error: Cannot find required OCaml package ‘extlib’
#573652: heartbeat: FTBFS: Nonexistent build-dependency: libcluster-glue-dev
#573653: abiword: FTBFS: Nonexistent build-dependency: libgoffice-0-8-dev
#573654: helium: FTBFS: Makefile: hGetLine: invalid argument (Invalid or incomplete multibyte or wide character)
#573655: mlton-cross: FTBFS: /bin/sh: wget: not found
#573656: pytest-xdist: FTBFS: ImportError: No module named setuptools
#573657: libfile-fu-perl: FTBFS: tests failed
#573658: libphysfs: FTBFS: docs/man/man3/PHYSFS_addToSearchPath.3: No such file or directory at /usr/bin/dh_installman line 127.
#573659: ecl: FTBFS: rm: cannot remove `/build/user-ecl_10.2.1-1-amd64-S2bazb/ecl-10.2.1/debian/ecl/usr/share/info/dir’: No such file or directory
#573660: …/api/package-list is no longer compressed
#573661: libdbix-class-schema-loader-perl: FTBFS: tests failed
#573662: …/api/package-list is no longer compressed
#573663: libthai: FTBFS: /usr/bin/install: cannot stat `./../doc/man/man3/th_render_text_tis.3′: No such file or directory
#573664: …/api/package-list is no longer compressed
#573665: hunspell-dict-ko: FTBFS: build hangs
#573666: plexus-active-collections: FTBFS: missing junit:junit:jar:debian
#573667: nuapplet: FTBFS: Can’t find gnutls library developpement files!
#573668: binutils-z80: FTBFS: /bin/sh: cannot open /build/user-binutils-z80_2.20-3-amd64-MwJBIl/binutils-z80-2.20/binutils-2.20.tar.bz2: No such file
#573669: keynav: FTBFS: keynav.c:799: error: too few arguments to function ‘xdo_mousemove’
#573670: moblin-panel-applications: FTBFS: moblin-netbook-launcher.c:1640: undefined reference to `mx_scroll_view_get_vscroll_bar’
#573671: tetradraw: FTBFS: /bin/bash: line 1: automake-1.7: command not found
#573672: beid: FTBFS: rm: cannot remove `_src/eidmw/bin/eidmw_*.qm’: No such file or directory
#573673: swfdec-gnome: FTBFS: Nonexistent build-dependency: libswfdec-0.8-dev
#573674: swfdec-mozilla: FTBFS: Nonexistent build-dependency: libswfdec-0.8-dev
#573675: jasmin-sable: FTBFS: Error: JAVA_HOME is not defined correctly.
#573676: corosync: FTBFS: `Depends’ field, reference to `libcorosync4′: error in version: version string is empty
#573677: banshee-extension-mirage: FTBFS: ./PlaylistGeneratorSource.cs(469,39): error CS0539: `Banshee.PlaybackController.IBasicPlaybackController.Next’ in explicit interface declaration is not a member of interface
#573678: gnucash: FTBFS: Nonexistent build-dependency: libgoffice-0-8-dev
#573679: libwx-perl: FTBFS: xvfb-run: error: Xvfb failed to start
#573680: …/api/package-list is no longer compressed
#573681: fso-usaged: FTBFS: fsobasics-2.0.vapi:110.2-110.84: error: `FsoFramework’ already contains a definition for `AsyncWorkerQueue’
#573682: libiscwt-java: FTBFS: Nonexistent build-dependency: libswt-gtk-3.4-java
#573683: nordugrid-arc-nox: FTBFS: ld: cannot find -larccrypto
#573684: cssc: FTBFS: rm: cannot remove `/build/user-cssc_1.2.0-1-amd64-XCK7aQ/cssc-1.2.0/debian/cssc/usr/share/info/dir*’: No such file or directory
#573685: django-threaded-multihost: FTBFS: distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse(‘setuptools-hg’)
#573686: …/api/package-list is no longer compressed
#573687: davical: FTBFS: /bin/sh: phpdoc: not found
#573688: gauche-gtk: FTBFS: gauche-gtk.c:450: error: too few arguments to function ‘Scm_Apply’
#573689: quilt: FTBFS: tests failed
#573690: pyabiword: FTBFS: Nonexistent build-dependency: libgoffice-0-8-dev
#573691: flumotion: FTBFS: configure: error: You need at least version 2.0.1 of Twisted
#573692: libnet-dns-zone-parser-perl: FTBFS: tests failed
#573693: nip2: FTBFS: Nonexistent build-dependency: libgoffice-0-8-dev
#573694: hedgewars: FTBFS: Error: Illegal parameter: -Nu
#573695: epsilon: FTBFS: FAILED (skips=5, expectedFailures=1, errors=7, successes=229)
#573696: python-glpk: FTBFS: Unsatisfiable build-dependency: libglpk-dev(inst 4.43-1 ! <= wanted 4.38.999)
#573697: libnanoxml2-java: FTBFS: cp: cannot stat `/usr/share/doc/default-jdk-doc/api/package-list.gz’: No such file or directory
#573698: doxia-maven-plugin: FTBFS: Reason: Cannot find parent: org.apache.maven.doxia:doxia

Ruby release blockers for Lucid and Squeeze

For the first time since I got involved in Ruby maintenance in Debian & Ubuntu, we are seriously at risk of not being able to release working Ruby interpreters in both Ubuntu Lucid and Debian Squeeze, because of two pretty serious issues.

Ruby 1.8(.7.249) randomly hangs with eglibc 2.11

That issue was found by Google folks, because Puppet was hanging. After a lot of (quite heated) discussion, it was found that the problem is caused by something in eglibc 2.11: the problem can’t be reproduced in a Debian unstable chroot (with eglibc 2.10), but is reproducible if you just upgrade glibc to 2.11 (which is in Debian experimental).

It is not clear at all whether it is a glibc bug, or a ruby bug: Ruby has shown in the past that it was making some assumptions on the behaviour of pthread. It is possible that a valid change in glibc conflicts with an assumption made by Ruby.

Still, I wonder why Ubuntu chose to release with eglibc 2.11, while Debian still only has 2.10 in unstable, and Ubuntu doesn’t really have a lot of people with deep glibc knowledge. (Update: I assumed we would release squeeze with 2.10, but the eglibc maintainers plan to release 2.11 in squeeze.)

That issue is tracked in Launchpad as bug 520715 (which was reassigned to eglibc), and in Ruby’s redmine as bug 2739. Debian Squeeze isn’t affected by that issue, but we are likely to get bitten as well after Squeeze if a solution isn’t found by then.

As Ruby maintainers in Debian/Ubuntu, we can’t do much about this issue, because it requires either a lot of glibc knowledge, or a lot of understanding of the Ruby threading code.

Ruby 1.9(.1.37{6,8})’s test suite hangs on Sparc

The development branch of Ruby (declared stable by the interpreter developers, but not considered as such by the third-party libraries developers) also has interesting issues. Its test suite hangs on sparc, but only (apparently) on specific CPUs/kernel versions. Here again, it is not clear whether it is a Ruby issue, or a kernel issue, for the same reasons as above. It is also possible that it is fixed in Linux 2.6.32, but the Debian build daemons run the lenny kernel, so we can’t check that. This is tracked as Debian bug 565765, and is not tracked in Ruby’s redmine, because Sparc is not supported by the upstream Ruby developers.

This issue really requires Sparc knowledge (and access), so as Ruby maintainers, again, we can’t do much, besides coordinating and poking the various people that can help.

Check your PTS subscriptions with UDD!

The Debian Packages Tracking System has a great feature: you can subscribe to packages that matter to you, and be informed of all uploads, bugs, testing migrations, etc.

However, when (co-)maintaining a lot of packages, it is easy to forget to subscribe. And then you might miss important information about your packages (uploaders don’t receive bugmail by default, for example).

Since PTS subscriptions are now imported into Ultimate Debian Database, it is easy to find out if you missed some subscriptions. It’s just a matter of going to http://udd.debian.org/cgi-bin/pts-check.cgi and entering your email!

And for those concerned with privacy, it should be noted that the unauthenticated access to UDD only gives you the hash of the subscribers’ emails. You need to be a DD, and use the guestdd account to see the email addresses (which DDs can already see on master.d.o).

Debian Squeeze, Ubuntu Lucid and Ruby 1.9.2: NO!

Apparently, there’s some hype in the Ubuntu community about Ruby 1.9.2, so let’s clarify: it would be totally irresponsible to try to ship Ruby 1.9.2 in Debian Squeeze or Ubuntu Lucid.

Ruby 1.9.2 has not been released yet:

That’s where we stand now. Even if surprises are possible, it’s very unlikely that Ruby 1.9.2 will be released before Lucid’s release (or, what the real requirement is, before Lucid’s freeze). So we are sticking with 1.8.7 and 1.9.1 (1.9.0 will go away before the release).

If you can point to specific commits that fix real bugs in 1.9.1, and could be backported to the Debian package, feel free to notify the Debian Ruby maintainers.

Slides from my FOSDEM talk on Debian and Ubuntu

I’ve just put the slides of my talk on Debian and Ubuntu online.

Don’t hesitate to post comments to ask for clarifications where needed (it might be difficult to understand some parts of the slides without being in the room).

Clarifications:

  • In slide 15, I wrote that Ubuntu had a newer X. During the presentation, I think I said that I wasn’t sure if it was still the case. Indeed, it’s no longer the case (and hasn’t been for a long time ; Ubuntu has been mostly following Debian for X). I apparently remembered a change a long time ago that was picked by Ubuntu from the Debian X svn/git (xlibs-dev removal, I think), and that caused a number of FTBFS in Ubuntu. However, clearly, the best example of such changes made first in Ubuntu are newer GCC versions.

Going to FOSDEM

I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting

Yes, I’m going to FOSDEM. And this year, I decided to innovate by starting the obligatory FOSDEM flu before leaving to FOSDEM.

I’m doing a talk on Sunday, on Debian and Ubuntu (Distributions room, H.1308, 13:45). It might not be on your schedule (but is on the printable schedule) since it was decided quite late.

Re: How free is the Nokia N900?

Following my questions on the freeness of the Nokia N900, I received quite a lot of comments. I’m trying to summarize the most important points here.

For all the details, see the comments and Tollef’s blog.