4 ms·
There is a pretty clearly defined set of safe behaviors under the GPL. If you do not link to a program, run it in the same address space as your proprietary cod
by lambda 12y ago
There is a pretty clearly defined set of safe behaviors under the GPL. If you do not link to a program, run it in the same address space as your proprietary code, or use any internal data structures of that program, that is safe.
No one can force you to open your whole code base. They can only make you choose between opening the parts that do the unsafe things listed above (linking, running in the same address space, utilizing private data structures via some kind of shim that is supposed to work around the GPL), or they can force you to stop distributing the GPLed software.
Until then, my company is solidly in the "Absolutely no
GPL" camp.
It's so stunningly easy to use GPLed software properly, and there are thousands of companies doing it. Just don't link it to your code, or try to do some kind of hack that avoids linking it while giving you all of the same benefits of doing so.
The problem with VMware is that they have been pushing all of the boundaries; rather than just taking the easy road and doing known safe things like ensuring that there's a clear separation between GPLed code and their code, or just releasing their code that is linking to the GPLed code.
- joshyeager 12y agoHow does that help if the code we want to use is a library? A recent example was an image manipulation need. We found a great library that met all our requirements, but was GPL. Our other options were an inferior MIT-licensed library, an inferior commercial library, or spending the time to write our own. If the thing you want to use is a DLL, how do you use it without linking to it? Writing some sort of external process and using IPC to talk to it might fulfill the letter of the license, but it's more work and less robust, and still violates the spirit of the GPL. In the end, we picked the MIT licensed component and worked around the issues.
- foobarqux 12y agoYour real complaint is that you can't use the GPL without the conditions imposed by it, not that those conditions are confusing or surprising.
- johnny22 12y agothat was the right thing to do in that case.
- lambda 12y agoYou either decide not to use it, using another component with a different license or writing it yourself, or you release you code under the GPL. That's not so hard, is it? It's just like the question you get when using proprietary software. If you don't want to pay the license fee or abide by its terms and conditions, you find an alternative or write an alternative yourself. The obligation to release your code is just the license fee for the GPL. If that's too steep for you, look somewhere else.
- glass- 12y agoThe GPL has some fun semantics. Take MediaWiki, it is GPL licensed (not AGPL), so you can modify it and run an instance of it without sharing your changes. Except, when someone accesses it, you are redistributing MediaWiki's GPL-licensed JavaScript files to their browser, so you do have to share your changes[0]. Think how many sites there are violating that without even realising. Now think how you configure MediaWiki; you modify LocalSettings.php to (at the bare minimum) add the database username/password, and set the secret key. This means essentially every site running a MediaWiki installation (or Wordpress, or effectively any other GPL-licensed web application) is violating the GPL, and are only getting away with it because no one has bothered to take legal action over it. [0] http://lwn.net/Articles/609709/ http://lwn.net/Articles/609709/ (section: "JavaScript and the GPL")
- tjr 12y agoI am not familiar with the inner workings of MediaWiki; how does modifying the credentials in LocalSettings.php change the JavaScript code?
- glass- 12y agoYou modify LocalSettings.php which creates a derivation of MediaWiki, or as the GPL puts it, "thus forming a work based on the Program". At this point you don't have to share the changes. However, once you distribute the JavaScript files: "You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License [...] These requirements apply to the modified work as a whole." By modifying LocalSettings.php you have created a derivation. By redistributing the JavaScript files you have distributed part of the work and therefore must make the whole derived work available under the GPL.
- tjr 12y agoThank you; I misunderstood.
- belorn 12y ago
- tomjen3 12y agoYou can make a shim in the gpl code that connects to a socket and communicates in json and then you avoid the problem.