Re: non-free firmware: driver in main or contrib?
Marco d'Itri wrote:
> aurel32@debian.org wrote:
>
>>I have just packaged a driver for wifi cards. The driver is licensed
>>under GPL, but the cards needs a non-free firmware to be uploaded in
>>order to work.
>
> I will quote from policy 2.2.2:
>
> Examples of packages which would be included in _contrib_ or
> _non-US/contrib_ are:
> * free packages which require _contrib_, _non-free_ packages or
> packages which are not in our archive at all for compilation or
> execution, and
> * wrapper packages or other sorts of free accessories for non-free
> programs.
>
> Your driver can be compiled and successfully executed without the
> firmware,
But does it do anything useful when executed?...
> so it should go in main because it's free software. As you
> correctly stated, the card needs a firmware, not the device driver.
> The hardware device may not perform useful work until its firmware has
> been loaded, but we distribute the driver and not the device.
Right, but can the driver do anything useful?
Actually, I'm inclined to be very broad-minded on that point. If the
driver, for instance, can load arbitrary microcode to the hardware at
run-time, then it certainly does something useful. (It allows firmware
loading and allows the testing of open-source firmware alternatives, at the
very least.)
> A similar issue was raised for clients for proprietary instant messaging
> protocols like AIM and MSN: long ago it was decided that as long as they
> are DFSG-free they can be part of Debian, even if they are obviously
> useless without the proprietary servers they connect to.
Interesting. Do alternative servers exist for these protocols?
> Considering that every complex device needs a firmware to work (of which
> usually we lack the source code), I cannot see why it should be
> relevant for our policy or detrimental to the cause of free software if
> this firmware is distributed by the hardware producer on a CD or in a
> flash EEPROM.
--
This space intentionally left blank.
Reply to: