If a binary form is built from some source files licensed under Mozilla Public License mixed with some source files licensed under Microsoft Public License, what would be a proper license for it?


You don't have to pick one license, and often you can't unify it under one license. Generally speaking, if you have a work made of code under different licenses,

  • you may exercise only the intersection of all permissions that the various licenses grant (i.e., only the rights that are common to all licenses), and
  • you must abide by the union of all requirements that the licenses impose (i.e., the complete set of all restrictions from all the licenses).

Some parts of the binary are under one license, and other parts are under a different license. So long as the union of all requirements is not contradictory (e.g., one license strictly requires A and another license strictly requires not A -- as sometimes happens with copyleft-incompatible licenses), it is possible to distribute the software in a way that does not run afoul of this combined set of requirements.

The permissions of the MS-PL are extremely broad, and its requirements are extremely slight. This makes it very easy to add MS-PL licensed code alongside differently-licensed code.

Note that the MS-PL actually does allow you to distribute MS-PL licensed code under a different license as long as the new license "complies with this license." However, MS-PL term 3(B) may make it difficult to find "compliant" licenses that include this requirement (and changing to a license that reduces or removes this requirement would be a violation of the MS-PL license):

(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.

The MPLv2 has a similar clause but it is less strcit:

If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate.

Notably, the MPL may respond differently in the case of "declaratory judgment actions, counter-claims, and cross-claims" which the MPL excludes but the MS-PL does not exclude.

Therefore, simply indicate that various parts of the binary are bound by different licenses, which include both the MPLv2 and the MS-PL. In practice, because the MS-PL is almost universally more permissive (except in a sub-case of patent infringement suits), the requirements of the MPLv2 will dominate.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.