Re: LCC and blobs
Glenn Maynard wrote:
On Tue, Dec 28, 2004 at 04:26:26PM +1100, Hamish Moffatt wrote:
Yet the ICQ client is not useful without a component which is not in
Debian and in fact is not freely available.
Nor is a driver useful without a piece of hardware which isn't in
Of course, license permitting, Debian *could* distribute the ICQ
server, but it's not necessary for the normal use of the client,
since connecting to remote servers is the typical, expected use of
However, the typical, expected use of the client requires "an item of
non-free software." So it would appear that your line is being drawn as:
Non-free software is being required iff it needs to be executed on the
That would, however, cover firmware and wind up sending X to contrib. So
maybe: ... iff it is stored on the local machine's file system.
I'm just showing how it's consistent to allow an ICQ client without
an ICQ server, while not allowing a driver without firmware or an
emulator without a ROM: the driver and the emulator are fundamentally
incomplete without the ROM image--users will install it, it won't work,
they'll grumble, read the documentation and install the non-free
piece. The ICQ client is not incomplete without providing a server,
since the server isn't generally within the scope of the operating
system; it's on the internet, and that's where it's naturally expected
to be. It seems natural to allow ICQ clients; it seems contrived and
inconsistent to allow the drivers.
The social contract says "...but we will never make the system depend on
an item of non-free software." not "but we will never make the system
depend on an item of non-free software /which we must distribute/."
In order to allow the vast majority of hardware which actually contains
firmware in e.g., EEPROM, we must:
a. Decide that somehow, the bits in EEPROM are not software.
Personally, this seems dishonest and silly. Every attempt
I've seen to do this somehow make dd into a magic hardware to
software conversion tool.
b. Use a definition of 'require' like the "if it's on the fs" one
above. Not quite as silly as (a). Would get interesting if
the firmware loading helper I mentioned in another message never
stored the firmware to disk.
c. Try and find a definition of require based on where the code
runs; however, this gives us a problem with both the BIOS
(sending lilo, grub, etc. to contrib, thus the kernel to contrib,
thus the whole system) and, even if we ignore that, X to contrib
(due to calls to video card BIOSes) and kernel (text console).
d. Try and find a definition of require which talks about APIs and
abstraction. This would be hard, especially if we decide we want
to consider firmware on disk drivers contrib.
e. Decide that having a few pieces of software --- hardware drivers
only --- requiring non-free software does not make "the system"
require non-free software, and thus does not violate the SC.
This would require a change to Debian Policy, too. This would
probably let firmware-on-disk drivers back into main (but their
firmware would of course be in non-free, if distributed at all).
f. Decide to ignore the social contract, and document that, possibly
with an appology.
g. Amend the social contract.