Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

share|improve this question
Please avoid the <tag like text>: <title> format for your titles. The more popular tag is automatically prepended to the title for search engine bots, so with your original title the question would appear in search results as: "licensing - Open Source Licenses: Are...". Always go with the more natural title you can think of. – Yannis Mar 19 '13 at 7:07

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. [...]

share|improve this answer
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 '13 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 Johnson Dec 22 '14 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. – Bart van Ingen Schenau Dec 22 '14 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.

share|improve this answer
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 '13 at 7:15
@YannisRizos I think that's right - here it is in their own words, from's website. – Daniel B Mar 19 '13 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:

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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