There's some discussion going on in Debian about firmware in main. Some people want it, others don't. The main argument by the firmware-in-main advocates seems to be that we can't install hardware if there isn't any support for it in the installer, and that the installer can only install by using stuff that is part of main. The obvious answer to that would be to modify the installer so that it would support retrieving stuff from non-free, but then that would require some changes to the installer which, according to Joey Hess, are rather significant.

So we now have a GR proposal to allow for firmware in main anyway, so that we can support non-free hardware. Obviously the proposal includes overriding the social contract. And huge and insane flame wars.

I don't like the sound of that. And I'm not convinced that the only way to get non-free udebs on a system is to download them from the Internet; Windows, RedHat, SuSE and other operating systems have supported the concept of "driver disks" for ages; I don't see why we couldn't do the same. And since our system is way more flexible than theirs anyway (it being modular and all), we can easily implement this using udebs.

So rather than engaging in flame wars, I just sat down and wrote some code that would allow the concept of "customization disks": CD-ROMs, hard disk partitions, USB keys, or floppy disks with udebs on them that will be installed if the user chooses the right option in the installation menu (requiring expert mode to get there, however). This can be used for all kinds of interesting things: non-free modules, but also OEMs (say, HP) providing udebs on their driver CD-ROMs so that they can have the installer support their hardware which is supported by the latest version of the Linux kernel, but occasionally not by the version that Debian Stable ships with, by backporting a kernel driver to the right version. Should they so choose. Or people could use it to test new modules without having to upload them and without having to set up their own repository. Or third-party developers could use it to add extra code to the installer to support some automagic stuff, whatever.

It hasn't been tested at all yet, but at this point it's not much more than a proof of concept anyway. Comments are welcome, but please read the thread on -boot on the subject, too.