LWN.net Logo

GPL, GPFS, and exporting kernel symbols

GPL, GPFS, and exporting kernel symbols

Posted Feb 26, 2004 17:07 UTC (Thu) by simlo (subscriber, #10866)
In reply to: GPL, GPFS, and exporting kernel symbols by Duncan
Parent article: invalidate_mmap_range() again

Is there anything in the GPL hindering me in distributing a Linux kernel
with any GPL_EXPORT changed to EXPORT?

I don't think so - that would in fact be contrary to the GPL!

So what hinders me in making those patches, destribute the revised Linux kernel (under the GPL naturally) and then I destribute the modules I want to load? Nothing!

Legally there can be no difference between the original Linux kernel and the revised one - both are GPL with a lot of different copyright holders.

Ofcourse the change GPL_EXPORT to EXPORT might convince a doubting judge that you stepped our some barrier, but I fail to see it has any legal significance.

Thus the whole question of allowing some modules to be binary and others not, and only some symbols to be available from binary modules and some not is bogus. It MUST be either or. See my comments above.


(Log in to post comments)

GPL, GPFS, and exporting kernel symbols

Posted Feb 27, 2004 17:10 UTC (Fri) by giraffedata (subscriber, #1954) [Link]

It's even easier than that.

IBM could simply create a second glue layer, one which does nothing but re-export invalid_mmap_range in a way that the module loader would be willing to link to the GPFS module. License that layer as GPL.

Or provide an enhanced Insmod program that can take a module that in no way offers a GPL license and converts the symbol references properly so they link up to _GPLONLY symbols.

I think the only legal effect EXPORT_SYMBOL_GPL has is that it makes it really hard to use a subroutine without the author's permission by mistake (or claim that you did it by mistake). But whether the author's permission has any legal bearing is an open question.

GPL, GPFS, and exporting kernel symbols

Posted Feb 27, 2004 20:34 UTC (Fri) by gleef (guest, #1004) [Link]

To my knowledge there's no legal barrier to patching the Linux kernel so that a GPL_EXPORT becomes an EXPORT, nor is there a legal barrier to distributing the patch or the patched kernel. The potential legal issue is with the modules that use these exported items.

In my view, the main purpose of the GPL_EXPORT is to make it blindingly obvious to module developers that if your proprietary module requires this item, your module will be subject to extra scrutiny that might lead to a lawsuit from a kernel developer who thinks your proprietary use of GPL code is a violation of his or her copyrights.

To phrase it another way, EXPORT puts the code into the official exported kernel ABI, and using the exported kernel ABI to develop your proprietary module is pretty clearly making a separate work that is not derivative of the Linux kernel. On the other hand, GPL_EXPORT is for stuff that's really internal bits, but the developers have some reason to make it look like ABI to well-behaved GPLed modules.

Distributing a proprietary module based on Linux kernel internals is dancing in a gray area of potentially distributing derivative works without a license. It might just get an angry developer to sue you. One of the first parts of such a lawsuit would be an injunction against distributing that module. Since almost all proprietary, binary-only Linux kernel modules are distributed by commercial entities for business reasons, it would presumably hurt to no longer be able to ship the module.

In this particular case, IBM is trying to sell Linux clusters using this filesystem, and it would benefit both IBM and the Linux developers to identify and resolve any legal issues with GPFS as early as possible. Exporting a symbol that apparently should be part of the official exported ABI would be a big step towards resolving this.

GPL, GPFS, and exporting kernel symbols

Posted Mar 3, 2004 14:42 UTC (Wed) by Duncan (guest, #6647) [Link]

> Is there anything in the GPL hindering me in distributing a
> Linux kernel with any GPL_EXPORT changed to EXPORT?

Actually, I believe so. You are violating the granted license of the original
authors. You are free to make your own modifications and license them
under the GPL and any other license you choose, but that doesn't give you
the right to change the license of code that is not yours, which modifying the
export provisions of said code would in effect be doing.

IOW, the modification itself can be legally distributed, but you still violate
copyright law by making the calls if you do so yourself, or by being an
accessory to the violation if you do NOT do so yourself.

OTOH, it WOULD be legally possible to provide the mods as a patch or in
other discriptive format, such that the on-site user could make the changes as
desired and under your instructions. Because the GPL doesn't restrict use, or
modification by the end user (because the modified source only has to be
distributed to users, which would mean the end user doing the mod, so it's
already done <g> the reason companies can modify code for their internal
use without distributing their mods), it's perfectly legal for someone to TELL
you how to make the mods, which is effectively what a patch does, and for
you to then USE the mods once made, including with their proprietary
source. However, the mods would have to be distributed in instruction/patch
form, and be applied by the user.

Thus, since the target market for this proprietary file system is presumably
large business customers with which IBM would most likely be working to do
the installation in the first place, it's easy enough for them to get around the
GPL_EXPORT issue, in individual installations. I believe they could even
make the patch part of the installation script, as long as the distributed
sources were kept pure/unmodified, and then modified at installation by the
script or whatever. It's really not a huge problem in practice, then, except
that it would of course be easier not to have to worry about making the mod
during installation, saving that step. However, IBM is playing nice and asking
for the mod, and it DOES prevent them from having to take that extra step at
installation.

Of course, IANAL and all that..

Duncan

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds