|
|
|
Ask HN: Could I use GPL licensed library in my MIT licensed project?
|
|
7 points
by huxingyi
2532 days ago
|
|
I have been working on my side project for years, and I am preparing to release the 1.0 stable version. The project is on MIT license since the first day, and it’s my preferred choice. However, I introduced CGAL library to my project later, and it’s GPL licensed. Currently, there is no other choice, I have to use CGAL library. 1. Does that means I have to change my whole project to GPL license?
2. Suppose I license my project as GPL, in the future, if I found a replacement for CGAL, could I relicense my project back to MIT if I remove all GPL related code? Or all my code have been infected as GPL and I lose control of all of them?
3. If I allow user add and run Lua script in my GPL licensed software, does the Lua script forced to License on GPL also? |
|
2. As each part has it own license you can mix and match how ever you want as long as the combined parts are compatible. If you are the author of all the project code (other than the CGAL library) then you have additional rights to change the license of future version, but in this case it is unlikely to matter as MIT is very permissive license. As the copyright author, the only way to "lose control" is that you can't retroactive change licenses of past publications of old version. New publications and new version however is fully within the control of the copyright author.
3. Plugins live in a grey area of copyright. From what I have seen the most common answer is that they are not covered by the license of the main program. Different organization makes different interpretation here, and for what it is worth FSF has published where they will enforce GPL (https://www.gnu.org/licenses/gpl-faq.html#GPLPlugins). I think Linux foundation determine the line based on GPL_ONLY flag in the kernel code, and wordpress has it own interpretation. I would however say that it is a bit of a stretch for a library authors to complain about the plugins licenses to software which uses the library unless there is very heavy and obvious 1:1 link between the plugin API and the library.