Comment 7 for bug 728426

Revision history for this message
grofaty (grofaty) wrote :

First of all I am not a lawyer, so I may be wrong... but I have read a lot of license like documentation, so I know little bit about licensing the program.

If you would like to combine the work of two programs that uses different licenses both licenses must permit this combining.

MIT LICENSED PROGRAM:
You can do with the code what ever you like to do (also sell, even re-license the program under closed-source license etc) with two restrictions: a) in source code you need to provide info that code was part of the MIT license and in source code write the copy-right owner of the original code and b) developer of the code does not provide warranty of any kind (developer is protected against suit). If two programs are combined the derived program can be re-licensed under any other license.

GPL LICENSED PROGRAM:
You can do with the program what ever you like to do (also sell the program), you can even modify the program, but at the moment you pass the code (executable) to the third person, you must also provide all derived source code. Developer is not permitted to re-license the program. If two programs (one of them is GPL program) are combined the derived program must be licensed under GPL.

LGPL LICENSED PROGRAM:
With this kind of licenses are in most of the cases used for libraries. The license is very similar to GPL but with exception that non-LGPL code can be linked with libraries in any way. LGPL code library can also be linked to closed-source programs (logically also with MIT like programs). Restriction is: if you change the code inside the library that is licensed under LGPL any derived work of changed library must be also licensed under LGPL.

IN THIS PARTICULAR CASE:
So in this case you can create an extension or write it inside main program, no difference. In both cases the restrictions are EXACTLY the same. If you change the library code you need to provide source-code changes and license all of the changes under LGPL. (But if this happens I suggest to contact the copy-right owner of library, so he/she can upgrade the code and include your changes in next version and any other project that uses this code can benefit.)

But don't forget combining the code and merging is not the same. If you just link your code with LGPL library then this is just combining. But if you copy the code and merge your code with the code from library then all derived code must be licensed under LGPL code.

So the main question is, is this LGPL code stored in library (separated file/files) and you will just call the library from Pinta (this is OK no license problem) or is this software just part of the code and you would like to merge (not link) this code into existing Pinta's code - merge it in such a way that there is no way to know which code is from LGPL program and which from existing Pinta program (so no library) - in this case don't do this you will be violating the LGPL license of library and we don't want that (unless all of the Pinta code is re-licensed under LGPL).

I assume code is stored in some separate files (libraries) if not I suggest them to store them like libraries and make it sure this code is stored separately and not changed in any way.

MULTIPLE LICENSES:
One more thing, source code can also be licensed with multiple licenses, for example if the code is licensed under MIT and LGPL so dual-license the developer of derived work can choose which license will he use (in this case does not make really the sense to license the code in MIT and LGPL).

COPY-RIGHT OWNER:
The are two things license and copy-right owner. Every license including MIT has a copy-right owners. Every contribution made to Pinta is copy-righted. In MIT license any derived work can be re-licensed. So some company can for example take the code and close it and release a commercial program. I am not the biggest fan of MIT for that reason. In other case if the program is GPLed and change of the license can only be done by copy-right owners. If one of the copy-right owners does not permit to re-license the program under some other license the whole program can not be re-licensed or this part of the code must be excluded from the program and rewritten. If there are multiple developers that contributed the code re-license of the code is not so simple and is actually like a "safety fuse" which prevents that GPL program is re-licensed under any other code.

NOTICE:
If you will use this LGPL code there must be some legal statement (in documentation) that some part of Pinta code may are licensed under different license.