[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: contrib or main?

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]"?
The problem lies in the definition of "useful", which varies from person to person.

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!"
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.

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".
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.

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 reconsider this.

Reply to: