GPLv2 Libraries — Is There a Point?
PiSkyHi writes "I understand that if I build an application that links with a library that is licensed under GPLv2, I must also make my application GPL2. I can see that value in this for an application. But for a library, what's to stop me separating my program into a GPLv2-compliant client app that talks to the rest of my (choose my own license) application?"
what's to stop me separating my program into a GPLv2-compliant client app that talks to the rest of my (choose my own license) application?
Umm... nothing?
If you're writing your application from scratch without using anybody else's libraries, you're free to release it under whatever license you like, even if it happens to talk to a GPL'd client plugin thingie, and even if you wrote that GPL'd client plugin thingie around somebody else's GPL'd library.
Why do you imagine that somehow there's a problem here?
$x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
$x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
The point is that enhancements to the library stay LGPL. I did this myself. I needed to modify LGPL libraries for the purposes of my application. I modified the libraries, and I am redistributing them under the LGPL. My main application is distributed under BSD license, and uses the LGPL libraries. The libraries make perfect sense separately (and in fact, I have people using them for reasons unrelated to the application I built). I think that, out of courtesy, and probably out of need, you need to make sure that the libraries are available separately.
This is exactly why the LGPL was created. Or sometimes you will have a GPL lib with the linking or classpath exception. You will find most libs are licensed under these, or even more permissive terms.
Therefore, if the lib in question is explicitly licensed under normal GPL, it's the author's wish that any apps that use it must be GPL compatible. I think it's only fair to follow the author's wish.
Pardon, fumbled the link.
Why you shouldn't use the Lesser GPL for your next library
The problem is that there are plenty of zealots that will tell you that incorporating any GPL-licensed component in any way immediately forces the entire body of work to be released under GPL.
This can be interpreted at various times to include static linking, dynamic linking, linkage via any sort of invocation such as exec, RPC, and any other sort of connection between two pieces of code. What is the "right" answer? It isn't all that clear. It can be a matter of intent or of benefit. If the developer is benefiting from GPL code, then their project should be under GPL.
Further, what any competent lawyer will say is the objective is to avoid lawsuits. This means taking a proactive position to avoid getting into situations where some GPL zealot can potentially sue.
Essentially trying to play games with GPL can bring you into conflict with zealots. Some of these people have resources which allows them to file silly lawsuits without personally costing them a fortune. These are people to avoid coming into conflict with. So take the broadest possible interpretation of the GPL and live with it.
You can't make a linked wrapper library since the GPL wrapper would be GPL too. See: http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#GPLWrapper However it sounds like you are talking about a service based wrapper. Then I'd say it depends on how integrated your service wrapper is with your main program. If you use separate processes but lots of IPC and shared memory then I'd think you app is to tightly integrated making it a derived work. If you make a network based service then I'd say you are legally clear even if you'll probably piss off the library author. See: http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#NFUseGPLPlugins You could also make your app GPL but put a lot of the functionality in non-free plugs, see: http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#FSWithNFLibs Of course you could also just release you app as GPL and not worry about it. What is stopping you from using the GPL?
My Hello World is 512 bytes. But it's also a valid Fat12 boot sector, Fat12 file reader, and Pmode routine.
but it is free...free from abuse by those who want to take and not give anything back.
You are correct. The answer is no. If the LGPLed library dynamically calls the GPLed library, then it is the FSF's position that the LGPLed library is a derivative of the GPLed library, and thus the work as a whole may only be distributed under the GPL. Please see this section of the FAQ:http://www.gnu.org/licenses/gpl-faq.html#GPLWrapper.
For your specific requirements, I'd advise touching base with them - they have an advice service for these types of questions.
GPLv2 Section 6:
"6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions."
The key phrase there is "subject to these terms and conditions". If you view the requirement made plain in Section 6 to be a "condition", it logically follows that that requirement can never be removed. This makes it fundamentally incompatible with the BSD and MIT licenses, because they do not make this requirement. And once enough additional clauses are added to set forth all of these terms, you have effectively rewritten the entire GPL. So no, GPL code cannot be used under almost any other license, because it denies both decreased and increased freedoms in licensing.
What he was saying is that Linux is working now because of the GPL during its development.
Of course most end users don't give a rat's ass about the GPL, but it is this GPL which allowed one modification made to Linux to be used anywhere. Without it, we would have an IBM Linux, a Red Hat Linux, etc. In this case, why not stick to Unix ?
The GPL does not guarantee that someone has to give you anything back. In fact, there is no reciprocation requirement at all.
I can, for example, take your GPL'd work, make some changes, then sell it to my customer. I am required, by the rules of the GPL, to give my customer the source, and they are allowed to do whatever they want, including give it to others, but if they paid $1,000,000 for it, chances are they're not going to do that. You have no right to demand the changes I made, or even a copy of the program from me.
This is a common myth around the GPL, that it enforces a reciprocation agreement. It doesn't. In fact, licenses that have such agreements are not compatible with the GPL.
If you need web hosting, you could do worse than here
Not sure about now, but a few years back, MySQL made this pretty explicit - they considered any kind of bundling of MySQL to be "linking". i.e. if your application could only work with MySQL, and you shipped it with your app, that was linking, even though they might have only communicated through a socket. The whole concept of program linking has come on quite a bit since 1990, so I agree with the parent, if there aren't alternative components that can be swapped out with a GPL'd one, that's linking.
Matthew @ Bytemark Hosting
They might. Or, they might consider the code to be critical to their business and not want their competitors to have it.
The point is, the GPL does not guarantee what many people seem to think it guarantees, particularly in the "must give changes back" situation.
If you need web hosting, you could do worse than here
FSF say that linking - even dynamic linking - creates a combined work (in memory) that is subject to the GPL.
Of course that theory has holes (eg. I'm not distributing that combined work.. it stays in memory, so the license it's under is irrelevant), but it's stuck for now.
A separate app is in no way a combined work as it doesn't share any memory space.. and it'd be hard to make a license that applied a restriction like that.
Not quite right.
Now it's right.
I have something against people claiming to be open when doing so.
That's your problem. Deal with it. You BSD fanatics do not have a monopoly on the term "open source".
As an example, you can't copyright the idea of a school for wizards and/or witches, although you can copyright a specific story built around that idea.
This isn't as clear as it sounds. If you write a story about a school called Hogwarts for wizards one of whom is named Harry Potter, you can expect to get sued for infringement under the theory that your story is a derivative work of J.K. Rowling's -- even though you've only copied ideas, not expressions.
I'm pretty sure that "Harry Potter," as a character, is an expression of the idea "student wizard".
I've seen this kind of thing before, and it surprises me that so many people have such a deep misunderstanding of copyright law.
The GPL ***CAN'T*** define what a derived work is; it lacks the power to do that. Congress (not FSF and not Microsoft), through copyright law, does that.
Reading pages at FSF may clarify the issue, simply because those pages are written by presumably well-versed people (though beware: they may try to persuade you, rather than inform you).
"Believe me!" -- Donald Trump
The community for a given derivative is its users. By definition the users will have a copy of the dervivative app and therefore the source. It was never intended that anyone and everyone should be required to have the changes.
In practice though, even private development will result in bug fixes and it will be in that private party's interest to pass those back to the original project so they are maintained by the community and don't have to be manually patched and merged in with each update.