GPL-only symbol Error

Jeff Haran jharan at bytemobile.com
Tue Nov 22 20:21:46 EST 2011


> -----Original Message-----
> From: Graeme Russ [mailto:graeme.russ at gmail.com]
> Sent: Tuesday, November 22, 2011 5:10 PM
> To: Jeff Haran
> Cc: Greg KH; Sengottuvelan S; Kernel Newbies
> Subject: Re: GPL-only symbol Error
> 
> Hi Jeff,
> 
> On Wed, Nov 23, 2011 at 11:34 AM, Jeff Haran <jharan at bytemobile.com>
> wrote:
> >> -----Original Message-----
> >> From: Greg KH [mailto:greg at kroah.com]
> >> Sent: Tuesday, November 22, 2011 2:44 PM
> >> To: Jeff Haran; Sengottuvelan S; Kernel Newbies
> >> Subject: Re: GPL-only symbol Error
> >>
> >> On Tue, Nov 22, 2011 at 02:35:24PM -0800, Jeff Haran wrote:
> >> > I've seen others when faced with this who build their own kernels
> > from
> >> > sources just modify the problematic EXPORT_SYMBOL_GPL()s to
> >> > EXPORT_SYMBOL()s. I don't know if that is legal. I wouldn't do it
> >> > personally. Consult a lawyer before you go down that road.
> >>
> >> It is not legal and companies have gotten into big trouble by trying
> > to
> >> do that, or by creating "gpl-condom" kernel modules that wrap gpl-only
> >> symbols and export them again.  Do not do that without the full buy-in
> >> from your legal department as they do not want to hear about it from
> > an
> >> external query first.
> >>
> >
> > Greg,
> >
> > Just curious, can you provide links to these cases?
> >
> > I've read the COPYING file at the top of the Linux source tree. I am not
> > a lawyer, but I don't see anything in it that would prohibit somebody
> > from taking the GPL kernel sources, changing the EXPORT_SYMBOL_GPL()s
> to
> > EXPORT_SYMBOL()s, publishing that modified kernel source as required by
> > the GPL license but then keep their module source that uses the now
> > non-GPL symbols private. It seems like it should be prohibited in the
> > spirit of open source, but I don't see any mention of these symbol
> > declarations in the license.
> 
> The mere fact that the "gpl-condom" module links to EXPORT_SYMBOL_GPL
> functions make it, in and of itself, a GPL module
> 
> ergo, there is no such thing as a "gpl-condom" module
> 
> Regards,
> 
> Graeme

Graeme,

Perhaps, but that's not what I asked about. It seems to me the essence of GPL is that it grants people the right to modify GPL sources like the Linux kernel in any way they want so long as they make those changes available to whoever uses the code in the future. I don't see anything in it that prohibits specific changes. So if I take a symbol that in the sources from kernel.org is declared with EXPORT_SYMBOL_GPL(), make a 1 line change that declares it EXPORT_SYMBOL() and put that on a publically available web site, how have I violated GPL?

Let's say I then ship a product that uses that custom kernel and a non-GPL kernel module of my own writing that only works with the custom kernel, how is that prohibited in the GPL license?

Not that I am planning on doing this and I've never done it in the past, but technically it seems that there would be no violation here.

Thanks,

Jeff Haran






More information about the Kernelnewbies mailing list