MIT vs. BSD vs. Dual License

bsd licenselicensingmit-licenseopen source

My understanding is that:

  • MIT-licensed projects can be used/redistributed in BSD-licensed projects.
  • BSD-licensed projects can be used/redistributed in MIT-licensed projects.
  • The MIT and the BSD 2-clause licenses are essentially identical.
  • BSD 3-clause = BSD 2-clause + the "no endorsement" clause
  • Issuing a dual license allows users to choose from those licenses—not be bound to both.

If all of the above is correct, then what is the point of using a dual MIT/BSD license? Even if the BSD refers to the 3-clause version, then can't a user legally choose to only abide by the MIT license?

It seems that if you really want the "no endorsement" clause to apply then you have to license it as just BSD (not dual). If you don't care about the "no endorsement" clause, then MIT alone is sufficient and MIT/BSD is redundant.

Similarly, since the MIT and BSD licenses are both "GPL-compatible" and can be redistributed in GPL-licensed projects, then dual licensing MIT/GPL also seems redundant.

Best Answer

My understanding is that:

  1. MIT-licensed projects can be used/redistributed in BSD-licensed projects.

True (but unless there are modifications, the users can get it from the sources also.

  1. BSD-licensed projects can be used/redistributed in MIT-licensed projects.

False MIT license allows for distribution without contribution credits; BSD doesn't.

  1. The MIT and the BSD 2-clause licenses are essentially identical.

False See above.

  1. BSD 3-clause = BSD 2-clause + the "no endorsement" clause

True.

  1. Issuing a dual license allows users to choose from those licenses—not be bound to both.

True.

Similarly, since the MIT and BSD licenses are both "GPL-compatible" and can be redistributed in GPL-licensed projects, then dual-licensing MIT/GPL also seems redundant.

No. Here is a major difference. MIT license and Apache License only requires that you give credit to original copyright holders. If you choose, you can redistribute source; but if you choose you can keep your new derived product without opening code. Hence, it is possible to use code developed under MIT and Apache—under a commercial license.

If you ever use code with GPL-based license and happen to modify it, you must distribute your modified code as well under GPL. In other words, once any GPL codebase is used under a project, and if you want to publish that as a product, it has to be published with the source code and it has to be published under GPL. It cannot ever be a commercial license or closed source, and it cannot be any other license which is less strict than GPL.

An example can take MIT, Apache or BSD license code, modified and distributed under GPL. Once a codebase is distributed as GPL, its further derived versions cannot be distributed under MIT, Apache or BSD license but must be GPL only.

Edit:

An example case of dual license: Suppose Nice Office is released under dual license—MIT and GPL. It has two possibilities. Some people can create NicePro Office, which can be commercial and sell. Whereas some other open source community creates a fork NiceOpen Office. In this case, it can enforce upon GPL distribution (of the original Nice Office as well as NiceOpen Office version) hence if you start with NiceOpen Office, you must comply to GPL only and not MIT license.

The point is in case of dual license the first person who derives a license has a choice. He can choose either way - however, the second person needs to adhere to the choice the first person made. He/She cannot override the original rights of either generation and cannot in any way reduce the obligation of the applicable license.

EDIT 2

Adding an interesting read - GPL and MPL Licenses has a serious conflict. Read this.