RE: Linux GPL and binary module exception clause?

Kendall Bennett
2003-12-05T18:44:50Z

Linus Torvalds <torvalds@osdl.org> wrote:

> So you can run the kernel and create non-GPL'd programs while running it
> to your hearts content. You can use it to control a nuclear submarine, and
> that's totally outside the scope of the license (but if you do, please
> note that the license does not imply any kind of warranty or similar).
>
> BUT YOU CAN NOT USE THE KERNEL HEADER FILES TO CREATE NON-GPL'D BINARIES.
>
> Comprende?

Right, and by extension of the same argument you cannot use kernel
headers to create non-GPL'ed binaries that run IN USER SPACE! Just
because a program runs in user space does not mean that it is not a
dervived work. There is nothing special about a user mode program
compared to a module just because it uses Linux system calls. The same
principles you apply to determine whether a module is a derived work also
apply to user space programs, *ESPECIALLY* if you consider that the GPL
kernel header files contains code (inline C or assembler) that probably
gets linked either directly or indirectly (through the C runtime library)
into *EVERY* Linux user mode program.

This exact reasoning is what RedHat (aka Cygnus) has been using for years
with the Cygwin toolkit for Windows. Although 99% of the code built with
the GNU compilers and Cygwin includes the glibc runtime library that is
LGPL, every program *must* include the C runtime library startup code or
it cannot function. *That* code is pure GPL, and by extension any program
using the Cygwin libraries is a derived work and must be GPL. If you
don't like that, by a commercially licensed version of Cygwin from
RedHat/Cygnus instead.

This is also IMHO why so few people outside of Red Hat contribute to
Cygwin, but that is a different issue ;-)

Regards,

---
Kendall Bennett
Chief Executive Officer
SciTech Software, Inc.
Phone: (530) 894 8400
http://www.scitechsoft.com

~ SciTech SNAP - The future of device driver technology! ~