Sign in to follow this  
swiftcoder

GPL & IPC

Recommended Posts

swiftcoder    18426
A friend suggested to me the following scheme: A server program, linked to a GPL library (and thus GPL itself), which is used by a closed-source client application (on the same machine), which communicates with the server program using some form of IPC (probably sockets or pipes). The sole purpose of the server is to provide services to the client, although it may of course be used by other clients. As far as I am aware, this doesn't break the letter of the GPL, but it does go against the spirit. The GPL defines derivative works in terms of linking, and I don't think that the wording of that section could be construed to cover IPC - though obviously I am not a lawyer. Would you tend to agree that this is legally allowed (despite the questionable morality)?

Share this post


Link to post
Share on other sites
monalaw    1367
This is purely academic.

Short answer: You won't know for sure unless you're sued for it.

Long answer: There is a lot of debate in the legal community with relation to what constitutes a derivative work under GPL, and whether the use of the term is unintentionally broad in a way that makes the license viral. This is partly because the term "derivative work" is left intentionally vague under copyright law. However, to the best of my knowledge the LGPL is less vague in that only the library itself is protected under the LGPL. If you use the library you have to reproduce the license for the library itself (and if I remember correctly, modification is constricted with libraries under LGPL). You don't have to make the rest of your proprietary code/program LGPL. If it's an actual GPL, it's a little trickier-- it comes down to how substantially your code relies on it. So refer to the short answer-- you won't know unless you're sued for it.

Do a search of the Open Source discussions that we've had in the B&L forum. I believe this has come up a few times.

Share this post


Link to post
Share on other sites
SimonForsman    7642
Quote:
Original post by swiftcoder
A friend suggested to me the following scheme: A server program, linked to a GPL library (and thus GPL itself), which is used by a closed-source client application (on the same machine), which communicates with the server program using some form of IPC (probably sockets or pipes). The sole purpose of the server is to provide services to the client, although it may of course be used by other clients.

As far as I am aware, this doesn't break the letter of the GPL, but it does go against the spirit. The GPL defines derivative works in terms of linking, and I don't think that the wording of that section could be construed to cover IPC - though obviously I am not a lawyer. Would you tend to agree that this is legally allowed (despite the questionable morality)?


I would definitly recommend against it, trying to circumvent a licence is never a good idea since you can get sued even if you're right.

The GPL (v3) doesn't define a derivative work, the FSF only states their opinion on their website (Not in the licence text).

Copyright laws generally define what a derivative work is, for the US you have:
http://www.law.cornell.edu/uscode/17/101.html
Quote:

A “derivative work” is a work based upon one or more preexisting works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which a work may be recast, transformed, or adapted. A work consisting of editorial revisions, annotations, elaborations, or other modifications which, as a whole, represent an original work of authorship, is a “derivative work”.


Im not a law expert but im assuming that it has to be tried in court on a case by case basis and it is not unlikely that the rulings vary between jurisdictions.

If your work is a derivative work you need to original authors permission, it doesn't really matter how your work is tied to the original.
The LGPL explicitly allows distribution of derived works under other licences as long as it is possible to replace/modify/update the portion covered by the LGPL , dynamic linking is only their suggested method of accomplishing this (Since it makes it easy to just drop in a replacement .dll/.so , but even static linking is legal as long as you make it possible to re-link the application (normally by distributing the object files))

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this