Home > Articles > Programming

  • Print
  • + Share This
From the author of Link, Pipe, Circumvent

Link, Pipe, Circumvent

The GPL makes a big deal about linking. If you want to avoid having to comply with the GPL, you need your code to run as a completely separate program. You can join two programs via pipes or sockets, as long as you do so via a reasonably generic interface, without either being considered a derived work of the other. Or, as NVIDIA discovered, you can provide a GPL'd modification to a GPL'd program that provides a generic interface, and then get end users to link it to some proprietary code.

If you have sufficient ingenuity, it's quite easy to work around the restrictions imposed by the GPL. With web services and web applications becoming increasingly common, you don't even need to try very hard. You can incorporate as much GPL'd code as you want into your proprietary web app or service, and no one can get at the code because you never distribute the binary—you just let people use it.

The Affero GPL attempted to address this problem by requiring you to leave in place any existing "download source" links. Of course, this requirement made the Affero GPL incompatible with GPLv2 (v3 has a special exemption). Because this requirement limits the modifications you're allowed to make to the code, it violates the four freedoms (although that didn't stop the FSF from recommending it).

If the GPL is easy to work around, why is it a problem? Anyone who needs to place additional restrictions on the code can do so—that is, anyone with enough money to spend on the extra developer effort or the legal advice, and therein lies the problem. The GPL fails to achieve its original objectives, and it also discourages people who don't want to employ a lawyer to read several pages of legalese and discover whether their intended use is likely to be allowed. It's easy to infringe accidentally; but if you really want to violate the spirit of the license, then it's still possible to comply with the letter of the license. With this situation in mind, it's easy to see why permissively licensed alternatives to GPL'd programs have recently started to see a lot more commercially sponsored development.

  • + Share This
  • 🔖 Save To Your Account