GPL-only symbol Error

Jeff Haran jharan at bytemobile.com
Tue Nov 22 21:10:27 EST 2011


> -----Original Message-----
> From: Guillaume Knispel [mailto:gknispel at proformatique.com]
> Sent: Tuesday, November 22, 2011 5:40 PM
> To: Jeff Haran
> Cc: Graeme Russ; Greg KH; Sengottuvelan S; Kernel Newbies
> Subject: Re: GPL-only symbol Error
> 
> On Tue, 22 Nov 2011 17:21:46 -0800
> "Jeff Haran" <jharan at bytemobile.com> wrote:
> 
> > > -----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.
> 
> I guess you can't really take some GPL code from a third party, do some
> random paperwork or magic trick that basically constitute an unilateral
> declaration from you that what was once considered and clearly
> identified as derivatives are not anymore, publish said derivatives
> that you pretend are not and do so in an incompatible licence, and get
> along with it. On the contrary such behavior would very probably
> constitute something like willfulness infringement if such thing is
> applicable (but IANAL and so over...)

If I planned to do this, I wouldn't change the license. The custom kernel sources I posted to the would-be web site would still have the same COPYING file.

You say it can't be done, but so far I've read nothing that convinces me that it would be illegal according to the verbiage of the license.

Again, given the scenario I described, how would the existing GPL2 license file that accompanies the kernel sources prohibit it?

It seems to me that the answer so far is "nothing" and as such the previous assertion that doing this would be illegal is not supported by the law, at least not in the US where I live. Perhaps in other countries the laws of copyright are different, but if there has been anything in these recent international trade agreements that has been successful it has been a standardization of the intellectual property law that governs this kind of thing across different national boundaries.

I personally am all for open source. I wish I could have been more successful in the past at convincing my employers to open up their proprietary modules and push them upstream, if no other reason that it would have made my life easier when kernel changes invalidated their implementation.

But it doesn't do anybody any good to spread misinformation about this topic, particularly with regard to what is and isn't legal.

Jeff Haran






More information about the Kernelnewbies mailing list