[Desktop_printing] PAPI for CUPS: Volunteers needed!

Michael Sweet mike at easysw.com
Wed Jun 28 10:35:13 PDT 2006

Roger Leigh wrote:
> Michael Sweet <mike at easysw.com> writes:
>> Giuseppe Ghibò wrote:
>>> Sorry the OT, but what about all the drivers (including printer, scanners
>>> and wireless) that works only if a binary firmware in the device memory
>>> (firmware which is not free and which generally can't be even freely 
>>> redistributed) is uploaded before.
>> WRT uploading firmware to a device (i.e. the firmware is not executed
>> by the driver), the GPL isn't an issue because the firmware is just
>> more data that is sent to the device.  The same firmware file could
>> be used on any platform you port the code to, and you don't need the
>> firmware source to recompile the driver.  You *do* need to allow
>> redistribution and modification of the firmware file, however, just
>> as documentation or image files in a package can be distributed and
>> modified.
> I think the situation gets a little muddier when you consider Section
> 3 of the GPL:
> "The source code for a work means the preferred form of the work for
> making modifications to it."
> For firmware, the "data" blob may likely /not/ be the preferred form
> for modification if it was created/generated from some other source.

Actually, this isn't necessarily the case.  Some firmware files are
essentially just data files with a little encapsulation that the
on-board ROMs use - it would be just like running FontForge to edit
a font file - doesn't make a difference whether you have the original
"source" files (whatever they would be) or the font file itself.

In any case, when the blob is not executing as part of the driver/
program, the use falls under the same GPL "loophole" as running a
separate program.  In most cases, you *can't* run a firmware image
natively on the local machine, it has to run either in an emulator
(separate program/library interpreting the data file) or on the
actual hardware.

IMHO, the dividing line is whether the firmware file a) runs on the
local machine and b) runs in the same process space as the GPL'd
program.  If a and b are both "yes", then the firmware file source
code must be provided, otherwise not.  An aggregate of a GPL program
with a non-GPL file/program does not make the non-GPL stuff fall
under the GPL!

That said, IANAL and a "definitive" answer is probably best found
by asking the FSF...

Michael Sweet, Easy Software Products           mike at easysw dot com
Internet Printing and Document Software          http://www.easysw.com

More information about the Printing-summit mailing list