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

Re: New summary: Binary peripheral software

Before we can answer the question as to what is firmware, we need
to distinguish between several possible types of firmware.  In
general, firmware is data to be loaded into some programmable
device.  The most common case is that the firmware consists of
instructions for some programmable processor, but it might also
be configuration bits for a field programmable gate array (FPGA)
or initialization values for certain device registers.

Another point that seems to be missed is that the DFSG document
does not define the term "source code".  The GPL defines source
code as follows:

"The source code for a work means the preferred form of the work
for making modifications to it. For an executable work, complete
source code means all the source code for all modules it contains,
plus any associated interface definition files, plus the scripts
used to control compilation and installation of the executable."

If Debian wants to adopt that definition and apply it to 
firmware, at least the kind that consists of instructions for
a programmable processor, then it seems clear that the assembly
language text needs to be provided if the software was developed
in assembly, and C source text if was C, etc, but that the binary
data alone will not suffice.

Debian is not bound to follow the GPL definition of source code,
though.  Assuming that it does, and restricting firmware to code
for programmable processors, we can answer Thomas Hood's questions:

Q1: Is binary peripheral software DFSG-free or not?
A1: If the source for that software is provided somehow, under a
    DFSG-free license, yet.  Otherwise no.

Q2: What do we do about it?
A2: Distribute it in non-free if DFSG-valid source cannot be

As for some of Thomas's possible answers, assuming "binary
peripheral software" means "no assembly or C source provided":

> 1. Binary peripheral software is DFSG-free.
>    We distribute it in main.

It clearly is not.  Peripheral software has source code, and
binary ain't it.

> 2. Binary peripheral software is DFSG non-free.
>    We distribute it in non-free.

Assuming the project has valid permission, OK.

> 3. Binary peripheral software is DFSG-non-free.
>    We distribute it in main because users can't do without it.

It would appear that the release manager would require an
explicit authorization (possibly in the form of a GR) to
violate the social contract in this way.

> 4. Some binary peripheral software is DFSG-free, some isn't,
>    depending on whether or not the binary is really the 
>    preferred form for modification.
>    We distribute it in main or non-free as appropriate.

The binary is unlikely to ever be the preferred form of
modification.  I'd only believe that for data that was
entered as something like hexadecimal codes when it was
first created.

However, Debian is not bound by the GPL definition of
source code as far as I know.  Maybe the project would
accept binary-only for code that was originally created
in assembly provided that a free (as in freedom)
disassembler were available.  Then Debian would use a
"practical form for modification" standard.  I'm not
sure that this is a good idea.

> 5. Some binary peripheral software is DFSG-free, some isn't,
>   depending on whether or not the licensor designates the
>   binary as the preferred form for modification.
>   We distribute it in main or non-free as appropriate.

It's 1997, and I'm Netscape.  I hereby declare that binary
is the preferred form for modification for Netscape Navigator.
Open source has arrived!

> 6. Binary peripheral software is DFSG-non-free and, if GPLed,
>    not even distributable in non-free because the preferred
>    form for making modifications is not provided.
>    We don't distribute it at all.

If someone claims that a program is GPLed and won't give you
the source, he's misinformed or lying.

> 7. Binary peripheral software is neither DFSG-free nor -non-free
>    because the Debian Free Software Guidelines don't apply to
>    software running on peripherals.
>    We distribute it in main.

This wasn't a credible position even before the recent GR.  Clearly
binary peripheral software is software.

Reply to: