What happens when open source software has two or more licenses?

| | August 5, 2015

I’m considering using a jQuery plugin in a commercial project. The plugin (datepicker) is “dual licensed”:

Dual licensed under the MIT
(http://www.opensource.org/licenses/mit-license.php)
and GPL
(http://www.opensource.org/licenses/gpl-license.php)
licenses.

Now the MIT license is pretty permissive license, allowing me to use this code in a closed-source project. However, the GPL is a viral license, requiring me to license my software with the GPL or a more permissive license.

When software is licensed under two or more different license, do I have to comply with all the licenses or just one? How do you reconcile licenses if they conflict?

5 Responses to “What happens when open source software has two or more licenses?”

  1. A license is what gives you rights to use a library. Dual licenses means that you can pick either license.

    The reason you release something under dual licensing is so that people can use either of the licenses when they use your software. E.g. many libraries are released under GPL as well as a commercial license, so that commercial applications can pay for using the library, while opensource projects can use them freely.

    This is different than having different parts of the application being covered by different licenses, which also happens a lot when different parties have the copyright to different parts of the application. For example, a commercial application might use an LGPL library; in that case, the library will be included and redistributed under the original LGPL license.

    In case of JQuery, I honestly don’t know what they’re thinking, because MIT license is compatible with GPL, which means you can always use a library that’s licensed under MIT and redistribute the product under GPL. So I don’t know why they felt the need to also release it under GPL explicitly.

    Update:

    http://blog.jquery.com/2012/09/10/jquery-licensing-changes/

    One simplification we made was to remove the GNU General Public
    License (GPL), leaving only the MIT License. Having just one license
    option makes things easier for the Foundation to manage and eliminates
    confusion that existed about the Foundation’s previous dual-licensing
    policy. However, this doesn’t affect your ability to use any of the
    Foundation’s projects. You are still free to take a jQuery Foundation
    project, make changes, and re-license it under the GPL if your
    situation makes that desirable. The Free Software Foundation site
    confirms that the MIT License is a “lax, permissive non-copyleft free
    software license, compatible with the GNU GPL.”

  2. Dual-licensed is supposed to mean that you have been given two different licenses to use the software, and you can pick which license you want to use. It is one or the other; you cannot pick and chose terms from different licenses.

    It is usually used in situations where a user might want to integrate the software with GPL-licensed stuff, and the original license isn’t GPL comptatable. Thus one of the two licenses is typically a fully GPL-compatible license.

  3. In dual licensed projects that I have seen, the purpose was so that people could use the software under whichever license met their needs. However, just stating “dual licensed” is ambiguous in this regard.

  4. David Thornley on November 30, -0001 @ 12:00 AM

    There are two possible definitions of “dual-licenses”.

    One is that you have to adhere to the provisions of both licenses, which in this case would effectively mean you keep the license and attribution information and treat it according to the GPL. That’s what I’d guess here. It’s pretty common to take software under a less restrictive license it and put a changed version under another, more restrictive, license.

    One is that you may use either license, at your option. Perl, for example, was traditionally available under either the GPL or the Artistic License, your choice, and the boilerplate the FSF (authors of the GPL family) suggests allows use under the current or any later version of the GPL, at your option. If it meant this, it would probably say so, and explicitly give you a choice.

    One possibility would be to try to find the version under the MIT license, which presumably was the original. You might have to do more work to it, but you wouldn’t be using somebody else’s code in a way that person didn’t want.

  5. In my opinion – to be safe, it is best to use the more restrictive license. That way, should anyone protest, you would not be in violation of that (the more restrictive) license.

    Some might argue the other case – that by having a more restrictive license AND a less restrictive license allows the less restrictive license to “open the door”, so to speak.

    In the real world, there are examples that go both ways. Again, my advice is tending towards the risk-averse approach (a.k.a. cover yourself).

    Cheers,

    -R

Leave a Reply to T.E.D.