Re: Linux GPL and binary module exception clause?
From: Kendall Bennett
Date: Fri Dec 05 2003 - 13:45:00 EST
Peter Chubb <peter@xxxxxxxxxxxxxxxxxx> wrote:
> > As far as I know, interfacing to a published API doesn't infringe
> > copyright.
> Well, if the only thing in the .h files was #defines and structure
> definitions, it would probably be a slam dunk to decide that, yes.
> Here's the part where people's eyes glaze over:
> % cd /usr/src/linux-2.6.0-test10-mm1
> % find include -name '*.h' | xargs egrep 'static.*inline' | wc -l
> That's 6,288 chances for you to #include GPL code and end up
> with executable derived from it in *your* .o file, not the kernel's.
> More to the point, look at include/linux/rwsem.h, and ask yourself
> how to call down_read(), down_write(), up_read(), and up_write()
> without getting little snippets of GPL all over your .o.
Clearly that is easy to work around, because all you need to do is have a
small GPL wrapper module that includes the Linux kernel headers and would
end up having GPL code linked into it, and build the wrapper such that it
makes calls via an API *you* define into your code. Then your code is
simply interfacing via your own API to the GPL wrapper module and none of
your code would be tainted.
At least via direct inclusion and use of Linux kernel API header files
anyway. There is still the issue of whether the specific binary module
code you are linking into the kernel is Linux specific or not and would
be considered a dervived work. If it is only for Linux and is not very
useful for other platforms, one could argue that it is a derived work and
hence should be GPL regardless of what API or GPL wrapper it uses.
Then again, if a module is completely Linux specific and the source for
it has no use outside of Linux, I doubt a vendor could care less about
keeping it proprietary anyway ;-)
Chief Executive Officer
SciTech Software, Inc.
Phone: (530) 894 8400
~ SciTech SNAP - The future of device driver technology! ~
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/