binary modules include GPL code from kernel headers
binary modules include GPL code from kernel headers
Posted Oct 15, 2003 12:20 UTC (Wed) by ballombe (subscriber, #9523)Parent article: LinkSys and binary modules
If a binary module require GPL kernel headers files to build, then it
is certainly GPL since kernel headers contain macro and inline functions,
which are copyrighted code not just interface definitions as the macro code
and inline functions are copied by the compiler in the binary module.
This is clear GPL violation and should be treated as such.
Posted Oct 15, 2003 16:26 UTC (Wed)
by pizza (subscriber, #46)
[Link] (3 responses)
Food for thought. You can't have it both ways.
Posted Oct 15, 2003 18:19 UTC (Wed)
by ballombe (subscriber, #9523)
[Link] (2 responses)
Outside the above exception, kernel headers are under the GPL, not the So whereas non GPL programs can use GLIBC headers, non GPL modules cannot
Posted Oct 16, 2003 4:17 UTC (Thu)
by Ross (guest, #4065)
[Link] (1 responses)
Posted Oct 23, 2003 13:04 UTC (Thu)
by khim (subscriber, #9252)
[Link]
Posted Oct 17, 2003 6:14 UTC (Fri)
by dododge (guest, #2870)
[Link]
If a binary module require GPL kernel headers files to build, then it
is certainly GPL since kernel headers contain macro and inline functions,
Not necessarily. Earlier this year there was a big argument on LKML regarding header use. RMS stated the FSF position as:
Granted they do not define "simple" and "substantial", but they do at least believe a distinction exists and that some macros and/or functions would not automatically produce a derived work.
More info here: http://www.ussg.iu.edu/hypermail/linux/kernel/0301.1/0362.html
Posted Oct 17, 2003 11:53 UTC (Fri)
by cross (guest, #13601)
[Link] (1 responses)
*Export: to carry or send to some other place (Merriam-Webster)
Posted Oct 23, 2003 13:14 UTC (Thu)
by khim (subscriber, #9252)
[Link]
Something to bear in mind when you write your own header files, anything you put there is being exported* (i.e. it's now outside your library), that is what header files are for. *Export: to carry or send to some other place (Merriam-Webster) Such a bold statement will be more believable if you'll supply link to any law where C headers are mentioned at all. Otherwise you can, of course, apply it to your programs - but only to your programs. Yes, it is a problem for things like libstd++ and such - that's why all quite non-trivial inline fuctions in libstd++ are not LGPL-copyrighted - exactly to make then usable for non-GPL programs!
So under this intrepretaion, glibc has to be GPL, as it relies on kernel headers to build. Since glibc is therefore GPL, any applications which run on linux must also be considered GPL. binary modules include GPL code from kernel headers
Note the "user space programs" exception in Linux/COPYING.binary modules include GPL code from kernel headers
LGPL as are GLIBC headers.
use kernel headers.
This is why most binary modules use a wrapper which separates the non-GPLed code from the GPLed code. See the NVIDIA driver for an example.
Correct
They try to make module usable with >1 version of kernel. You can not write such a wrapper NOW. You need to add exception like it's done for userspace programs ! And only copyright holder can add such exception.
Wrapper which separates the non-GPLed code from the GPLed code ?
binary modules include GPL code from kernel headers
Our view is that just using structure definitions, typedefs, enumeration constants, macros with simple bodies, etc., is NOT enough to make a derivative work. It would take a substantial amount of code (coming from inline functions or macros with substantial bodies) to do that.
This is a clearly ridiculous argument. Most software in C includes all sorts of headers with different licences and cannot be considered to be subject to the same license as all of them. The header defines the interface to the library, it should not be considered to be the library itself. Something to bear in mind when you write your own header files, anything you put there is being exported* (i.e. it's now outside your library), that is what header files are for.binary modules include GPL code from kernel headers
binary modules include GPL code from kernel headers