I am the current maintainer (albeit, not a great one, but still a maintainer) the phashion ruby gem (https://github.com/westonplatter/phashion).<p>I was notified by a user that the current MIT license of phashion may conflict with the GPL 3.0 license of the pHash software included in it. The argument goes that since phashion includes the source code of pHash as apart of its distribution, it needs to also use the GPL 3.0 license.<p>My question ... is there a licensing conflict between phashion and pHash? If so, what are the options?<p>Other question ... are there any open source lawyers/organizations I could talk to for free?<p>NOTE - I realize I'm asking a legal/IP question. I will not treat comments or opinions as legal advice.
> Can I use GPL-licensed code in my MIT-licensed project?<p>> No. The project as a whole must conform to the terms of the GPL license and must be distributed under the terms of that license. Therefore such a project as a whole must be distributed as GPL, but can still contain MIT-licensed software.<p><a href="https://www.tawesoft.co.uk/kb/article/mit-license-faq" rel="nofollow">https://www.tawesoft.co.uk/kb/article/mit-license-faq</a>
Yes you indeed have a licensing conflict. The GPLv3 is pretty explicit about it, you must release your software under the GPLv3 license if you use GPLv3 software.<p>Good news if you use your ruby gem in non GPLv3 software, pHash can provide a commercial license as well : <a href="http://phash.org/licensing/" rel="nofollow">http://phash.org/licensing/</a><p>You could perhaps have a dual licensing model for phashion too. One GPLv3 and one other requiring a commercial license of pHash.<p>After updating phashion to the correct license, I think you also have to communicate to the users of your library. Telling them that their software must be licensed under the GPLv3, or that they need to get another license from pHash and you, or removing your library from your project. Some users are most likely not aware of the GPLv3 license of pHash as it is a dependency of a dependency, and not from rubygems.
The simple and direct answer is to distribute the combined whole work under GPL, while distributing the parts your have written under MIT.<p>The more complex answer is a question. Why did you choose MIT? If you want people to use the parts you have written under a permissive license, then the setup above will allow that. If your intention is for people to use the whole combined project under the MIT then the only legal option is to remove the pHash dependency and either rewrite that part of find a alternative dependency that provide the same functionality. If you just picked the license randomly then simply switching to GPL will solve the issue.<p>As for free lawyers, I think the software freedom Conservancy might answer such questions at <a href="https://sfconservancy.org/about/contact/" rel="nofollow">https://sfconservancy.org/about/contact/</a>
<a href="https://sourceforge.net/p/clisp/clisp/ci/default/tree/doc/Why-CLISP-is-under-GPL" rel="nofollow">https://sourceforge.net/p/clisp/clisp/ci/default/tree/doc/Wh...</a><p>And that's just for using readline.
From gnu.org:<p>> Linking a GPL covered work statically or dynamically with other modules is making a combined work based on the GPL covered work. Thus, the terms and conditions of the GNU General Public License cover the whole combination
It’s hard to know without digging into your your library, which I haven’t. Also, I’m not a lawyer so I won’t try to give you a legal opinion.<p>However, you should probably take this one seriously.<p>I recommend reading the book “Open Source for Business” by Heather Meeker if you are looking for background on open source licensing. It’s written in a way that’s really accessible to non-lawyers.