GPL'd Source Code
Recently I took GPL'd source code, simplify them, remove few functions that I don't need, add new functions, and use them in my closed source program as plug-in. Is that legally allowed?
Secondly, I want to release the new source code as MIT license, is that allowed?
22 comments
[ 0.19 ms ] story [ 1163 ms ] threadThe first is (I think).
However if you want to share any GPL-ed Code it must be released as GPL. GPL is viral like that.
It's like saying the windows license (no unauthorized distribution) is viral because if you got the windows source code & used bits in your program you wouldn't be able to distribute the program at all without getting sued to hell. Did the windows license spread to your program?
Personally, I've always stuck to using LGPL, MIT, or BSD licensed code in closed source products.
usually the FSF will send notices to people or companies violating the GPL, a lawsuit is the last option.
How is that different? If you're making something for internal use at your company, it means that you don't have to give back. If you are distributing it to users that are not yourself (or your company), you must make it GPL.
2. You cannot relicense code under different licenses unless the license explicitly says that you can. The GPL doesn't have such a provision.
Secondly, I want to release the new source code as MIT license, is that allowed?
Your work is a derivative work of the original copyrighted source code.
The GPL only gives permission for you to distribute such a derivative work if it is also GPL'd. Thus, if you're only using your code privately, you should be OK. If you actually distribute your closed-source derivative work to others, then you have reused the original copyrighted source code in a manner not approved by the rightsholder's license. You are then violating someone else's copyright.
This applies whether you distribute your derivative code in a closed-source product, or under a non-GPL open-source license (like the MIT license).
(I am not a lawyer but this is pretty basic GPL interpretation.)
Edit: to clarify private use vs. 'distribution' distinction.
Look at it this way: Photoshop is a proprietary application, but anyone can write a plugin. If someone wrote a Photoshop plugin using GPL'd software and distributed it independently, Adobe would not have to GPL all of Photoshop. They would have to release the source code to the plugin, of course.
That said, if the only reason the piece of software is written as a plugin is to circumvent the GPL, you'll piss off a lot of people. (e.x. the Acquisition LimeWire client for OS X)
"distributed it independently"
for example.
package com.mycompany.lib
import org.someGPL.lib.A;
myClass B extends A {}
In this case you simply include the GPL lib as GPL and your Lib as any type of license
in your class B you can override functions you don't like and add more of your own functions.
Finally when you release your code you have to say that this code uses the following GPL code...
I can't understand how so many people manage to misunderstand the license in so many ways. Read the license, and if you don't understand it, read the FAQ. Every question you can possibly come up with will be answered by one or both of them.
(B) There are a couple of books about open source license that explain the various bits pretty well -- you might want to read them, too.
(C) On your first question, no that's not allowed by the GPL. You've created a derivative work and it must remain GPL'd.
(D) Your "new functions", if they are truly your own independent creations can potentially be separated out into their own e.g., library and you can release just that under whatever license you like.
(E) In terms of your second question, that depends on what you mean by "new source code". If you mean "only the completely new source code that you've written independently" then yes as long as you don't include that code as an integral part of GPL'd code in creating a derivative work. The other cases have been covered above.
(F) IANAL. Seek competent, professional legal advice.
Still not sure about the first question. This is not my case, but just to clarify: if somebody writing a closed-source program and sell it, and that program is using GPL'd DLL, is that violating the GPL license?
For example this is the case with MySQL, where the client library is licensed under the GPL, therefore any client program linking to it has to be GPL (unless you pay for a commercial license).