By contrast, Ubuntu and Fedora are taking another approach. In their latest releases, they have moved the offending firmware into a separate software package. These packages are installed by default with each kernel, but can removed by those with moderate expertise in each distribution's package tools. Ubuntu even has an install option for not including the package, although the option was broken in the first version of its latest release, causing the installer to include the package regardless of what choice was made.
According to Woodhouse, such solutions are in keeping with the modern kernel practice of removing firmware from the kernel. New drivers already follow this practice, and old ones are being rewritten to follow it in what he calls largely routine "janitorial work to bring drivers up to date with how we do things these days."
"There are plenty of technical reasons why it's better to do that," Woodhouse says. "It's much easier to change firmware and experiment with it, and it avoids taking up unswappable kernel memory for something which is only required occasionally."
The process is not yet complete, but Woodhouse estimates that it should be done for the release of the 2.6.29 kernel -- in other words, within 3-6 months, given the usual pace of kernel development.
This solution, he says, has several advantages. It avoids the problem of including with the kernel, which is released under the second version of the GNU General Public License (GPL), firmware that is incompatible with the license. In addition, it satisfies companies who are worried that including their drivers in a GPL work like the kernel might oblige them to offer their source code.
Most important of all, the arrangement simplifies the maintenance issues of satisfying free software advocates. "They're using the same kernel build as the rest of us, and the support and the installer issues don't make us all want to curl up under the table and cry."
There is, of course the other solution of following distributions like GNewSense and Blag and shipping a free kernel, either on its own or as an alternative. However, the process of making this switch is time-consuming, and, with open source supporters not seeing much reason to make the effort, large, well-established distributions are unlikely to consider it for long. Under these circumstances, the compromise of removing the firmware to a separate software package is likely to be the preferred course for most distributions, especially since it is happening anyway.
But, like most compromises, having a separate package for the firmware is unlikely to satisfy everyone. Oliva, who campaigned hard for a free kernel in Fedora, notes that many firmware blobs remain in the latest Linux kernel, a fact he can verify because of the scripts he wrote for the linux-libre project to remove them. However, if Woodhouse is correct, these blobs should be removed soon. And, at any rate, the FSF definition of a free distribution does not insist on complete compliance with itself -- only good faith efforts to comply.
More seriously, Oliva points out that, in Fedora, installing a new kernel will automatically add the firmware package as well, requiring you to remove it with each kernel upgrade. In other words, the default is still a non-free system, which contradicts Fedora's claim that it ships only free software.
However, Oliva does concede that, were Debian to move all blobs to its non-free repository, that "would be an actual step forward." At least by using only the main repository, users could be assured that they had a completely free system.