According to this GNU Project page, regarding Microsoft Public License (Ms-PL):

This is a free software license; it has a copyleft that is not strong, but incompatible with the GNU GPL.

They do not explain why it is incompatible. I cannot find any satisfactory answers nor explanations via Google.


3 Answers 3


As far as I can see, the incompatibility between GPL and Ms-PL stems from the fact that the Ms-PL does not seem to allow sub-licensing or dual-licensing.

As the GPL requires that all code in a GPL-licensed product is covered by the GPL and the Ms-PL seems to require code that is Ms-PL licensed to remain covered by the Ms-PL and only the Ms-PL, this makes it impossible to have code covered by these two licenses in one product, thus rendering the licenses incompatible.

My understanding of the incompatibility comes from this quote from the Ms-PL license (emphasis mine):

(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. [...]

  • This would not actually block initial or continued dual-licensing. If the original author licensed his code Ms-PL and GPL, you may choose which set of terms to apply, but not pick&match. The restrictions in the Ms-PL therefore only apply when exercising the rights granted by the Ms-PL. Redistributing under the GPL is a right not granted by the Ms-PL, and therefore cannot be restricted by it either. This only blocks later relicensing by someone not owning the copyright.
    – MSalters
    Aug 19, 2013 at 9:46
  • @MSalters Does that mean I could use an Ms-PL library in a GPL project if I dual-license the project as GPL and Ms-PL?
    – Cole Tobin
    Dec 22, 2014 at 1:04
  • @ColeJohnson: If you own the GPL code, that is possible but it would go against the spirit of the GPL. People receiving the project from you can only legally redistribute it under the Ms-PL license. You as original author have more leeway in how you distribute your work. Dec 22, 2014 at 10:49

I am not a lawyer, and this is not legal advice. If you want a definitive answer, consult an attorney.

I cannot find any potential incompatibility with the GPL v3 (as I understand it) except perhaps §3(D), which disallows relicensing under a license that does not impose compatible requirements. The GPL also disallows relicensing under a license that is less permissive, as the FSF defines it.

You should email the FSF about this, to get their take, as I can't find their reasoning published on the GNU or FSF websites.

  • This is the answer, and this is what FSF means by "it has a copyleft that is not strong". Strong copyleft licenses are inherently viral, weak copyleft licenses are not. A prime example of a weak copyleft license is the LGPL, and MS-PL is probably equivalent to it (can't be sure, IANAL).
    – yannis
    Mar 19, 2013 at 7:15
  • @YannisRizos I think that's right - here it is in their own words, from gnu.org's website.
    – Daniel B
    Mar 19, 2013 at 8:35

In general, the GPL states that you can use non-GPL licensed code in your GPL-licensed product provided that the non-GPL license does not impose more restrictions than the GPL. In other words, you can freely use 3-clause-BSD-licensed code in your GPL project. This doesn't change the license of the BSD-licensed code - the GPL is viral only to code that uses GPL-licensed code, not to code that is used by GPL-licensed code (that would be unreasonable and in general impossible). On the other hand, the 4-clause-BSD license contains an additional clause about advertising, which doesn't exist in the GPL, and so is incompatible.

I see two candidates for the offending clauses in the Ms-PL. One is 3c, which requires the preservation of not only copyright notices (that's pretty much universal across licenses), but also patent, trademark and attribution notices. The other is the second part of 3d, which imposes a restriction on the compiled form of the code that is not there in this form in the GPL. But IANAL, so I'm not sure about this.

Note also that the Ms-PL contains a patent provision similar to that of the Apache License, which makes it incompatible with the GPLv2, but not the GPLv3 (which added similar wording of its own). See the description on GNU's website: http://www.gnu.org/licenses/license-list.html#apache2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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