Re: contrib or main?
The problem lies in the definition of "useful", which varies from person
What do you suppose "require" refers to, in "require the use of" (SC#1), if
not "require the use of [in order to be useful]"?
A much more common argument was that such drivers should be allowed as a
*component* of a larger package, such as the kernel, because the kernel
as a whole was "useful" without the blob; but not as a package by
itself, because such a package was not really useful without the blob.
We've had this argument before. Someone claimed that drivers that require
non-free firmware blobs should be allowed in main, saying things like "it
might be used to recreate the blob!" and "the driver still works without
it, it just exits with an error code!"
Unfortunately, taking the *opposite* argument to its logical conclusion
causes trouble as well. The Debian system only runs on platforms with
certain chips and EPROMs, such as the PC BIOS. So clearly it requires
these things. Almost all of those EPROMS contain non-free software.
Yes, there is LinuxBIOS for a few systems. But there is no similar
replacement for the VGA BIOSes on all PC graphics cards, which are
certainly necessary for X Windows on PCs; or for the BIOSes on any
non-PC architecture. All of the CPUs for which Debian runs are built
from non-free Verilog (or similar) files; worse, most of them contain
non-free microcode (which is certainly software). Most of the drivers
which don't contain downloadable blobs rely on them being shipped by the
manufacturer; only a few devices nowadays avoid the use of embedded
software and stick to pure hardware design. So taking the opposite
argument leads us to the conclusion that nothing currently belongs in
main, and everything belongs in contrib. I am sympathetic to this
argument, but I suspect it would be politically impossible.
It can be applied to just about anything in contrib: "an application that is
nonfunctional without a non-free library doesn't require it, it's just not
very useful without it"; "a Java application doesn't require a JRE, it's
just not very useful without one". It's an argument for abolishing contrib
and merging it with main, saying "nothing really requires anything else".
At the moment, I believe we are best served by leaving the line between
main and contrib fuzzy. If a maintainer gives a decent explanation for
how something is "useful" without additional bits, I am inclined to
accept it today, because it's probably a better explanation than the
explanation for how the Debian system is "useful" without a non-free
BIOS. I am far more concerned about making sure the line between
main/contrib and non-free is drawn properly, which is a hard enough
fight as it is, unfortunately.
One day we will fill in the gaps and have at least one hardware system
composed substantially of free software, and then it will be time to