GPL Interface arguments and proprietary kernel modules

(rewritten for clarity Aug 21, 22, 2007)

Changing interfaces of GPL software is permitted under the GPL. The license specifically permits anyone to make any changes in the code. There is no limitation concerning the intentions of the coder or the desires of the code “maintainer”. The entire project of marking certain interfaces in Linux “GPL only” strikes me as absurd – and the claim that removing those marks is a violation of the DMCA is worse. If you distribute  a GPL program and try to limit the rights of others to modify that code, you are at the least, in violation of the GPL. It is entirely reasonable to take GPL code and use the code as raw material for a completely different work no matter what the original authors or the code maintainers think of your changes.  Tinkering and modification is at the heart of the GPL.  You cannot reasonably distribute software that has a written license that specifically permits anyone to modify it as they please as long as they retain the license and appropriate copyright notices on any derived software and then retroactively insist that certain modifications are forbidden because it would make it too easy for people other than your employer to profit from use of the code. I sympathize with people who do not want to have their work appropriated by others, but if you want to control what modifications other people make to your software, don’t release under a GPL like license.

The “GPL only” interface is particularly weak because of the known fact that some of the significant corporate contributors to Linux have shaped the internal code to make their proprietary software work better. The “interfaces” Linux offers kernel modules have been altered over time in ways that make some commercial products easier or harder to run with Linux. The “GPL interface” faction wants to be able to freeze those changes and decide who can play in their sandbox. That is directly in contradiction to the GPL’s intent and language.