GPL Licensing – Avoid GPL Violation by Moving Library Out of Process

gpllicensing

Assume there is a library that is licensed under GPL. I want to use it is closed source project. I do following:

  1. Create small wrapper application around that GPL library that listens to socket, parse messages and call GPL library. Then returns results back.
  2. Release it's sources (to comply with GPL)
  3. Create client for this wrapper in my main application and don't release sources.

I know that this adds huge overhead compared to static/dynamic linking, but I am interested in theoretical way.

Best Answer

Legally, I'd say it would be OK (but I am not a lawyer - consult a lawyer for legal advice).

Morally, it's pretty reprehensible. If you don't like the GPL, then the "proper" solution is not to use a GPL library.

Edit: To clarify, whatever the legal standing of the GPL with respect to whether dynamic linking is allowed or not, the LGPL was specifically created with the intent of allowing dynamic linking in the case of libraries. So it seems clear to me that by choosing the GPL over the LGPL, the author of the library was doing so explicitly to disallow dynamic linking. Using a technical means to work around a legal restriction that expresses the author's explicit intent for his code is what is reprehensible, in my opinion.

For the record, I'm not personally a fan of the GPL (I prefer a more permissive license such as MIT or BSD). However, I am a huge fan of respecting the work of other developers, and if they don't want you link their library with closed-source software, then that's prerogative.