Q:

Why isn't the Microsoft Public License compatible with the GPL?

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.

A:

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

A:

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.

A:

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

