MS-PL/GPL compatibility, was Re: For Approval: Microsoft Permissive License

Chris Travers chris.travers at gmail.com
Wed Aug 22 22:08:10 UTC 2007


On 8/22/07, Tobia Conforto <tobia.conforto at linux.it> wrote:
>
>
> It poses a GPL compatibility issue because the license forbids you to
> redistribute the code (which is not yours) with a different set of
> permissions than those you received it with: not with more permissions
> (which even you don't have), not with less permissions (doing so would
> take away from the code some rights that they want preserved.)



GPL v2 is clear in stating that parts of the work may be included if they
are under more permissive licenses, and that the license of the work as a
whole is what matters.  GPL v3 has some troubling wording (but the inclusion
of the word "therefore" seems to eliminate this problem.

The MS-PL does *not* limit licenses of the work as a whole.  So I don't see
a conflict.  From the MS-PL:

"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. If you distribute any portion of the software in
compiled or object code form, you may only do so under a license that
complies with this license."

Is it too much to ask for a definition of "the software" to be included in
the license?  It reads like this  covers unaltered source code fragments,
but I suppose it *could* be read to cover derivative works as well.
Assuming it only covers source code fragments as any more abstract aspects
subject to copyright would probably not be "the software" licensed....  (it
would still be nice to have this defined)

>From the GPL v3:
"You must license the entire work, as a whole, under this License to anyone
who comes into possession of a copy. This License will therefore apply,
along with any applicable section 7 additional terms, to the whole of the
work, and all its parts, regardless of how they are packaged. This License
gives no permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it."

The argued conflict is with the second sentence:  "This License will
*therefore* apply, along with any applicable section 7 additional terms, to
the whole of the work, and all its parts, regardless of how they are
packaged." [emphasis mine]

Due to the placing of the word "therefore" I would read the GPL v3 as
requiring that the work as a whole be licensed under the GPL v3, but that
individual components could be licensed under more permissive terms, for
example by mere inclusion.  It also does not seem to provide any
requirements relating to restricting permissions beyond "the entire work, as
a whole."  In other words, it provides that the work as a whole must be
licensed under the GPL and all components must be licensed under compatible
terms.  Additional permissions, in the sense of components which have other
permissions are expressly *allowed* by the GPL (but are obviously limited to
the original components of the work with the additional permissions).

This is further borne out in the fact that the GPL does not restrict
additional permissive terms in the same way that it restricts additional
restrictions.  Under section 7:

'All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further restriction,
you may remove that term. If a license document contains a further
restriction but permits relicensing or conveying under this License, you may
add to a covered work material governed by the terms of that license
document, provided that the further restriction does not survive such
relicensing or conveying.'

This suggests that further restrictions only trigger a requirement to
relicense.  Additional permissions, though they only apply to original
portions of the work, are allowed.

The last paragaph of the section includes:

'Additional terms, permissive or non-permissive, may be stated in the form
of a separately written license, or stated as exceptions; the above
requirements apply either way.'
Does the MS-PL qualify as a set of additional permissive terms under a
separate license (thus superceding the GPL v3 restrictions)?  Does this not
make the disagreement over the word "only" to be moot? Or are you reading
this to say that the work as a whole containing MS-PL code must be licensed
as a whole under the MS-PL?

If I take a MS-PL file (not mine) and a GPL file, combine them into a
> derived work and release it as GPL, the GPL requires the whole work
> (including the MS-PL part) to be released with permissions exactly equal
> to the GPL;


Read section 7 of the GPL v3 again, or section 2 of the GPL v2.  Additional
permissions are not prohibited.  However the MS-PL is not compatible with
the GPL v2 on other grounds.

I think we are differing on how we read the GPL, not the MS-PL :-)

The GPL v3 also allows for reasonable legal notices to be included, so the
requirement that source code be identified as being still under the MS-PL
does not seem to be a problem.

and the MS-PL requires the MS-PL part to be released with
> permissions exactly equal to the MS-PL, which are different from the GPL.


Reread GPL v3 section 7 again.  Pay particular attention to the idea of
permissive vs. non-permissive additional terms and additional licenses.

The only solution I can see is not to distribute a work derived from (or
> including) both GPL and MS-PL code.



I see one danger with the MS-PL and probably would not use code for it in
any of my projects outside some sort of discrete component division simply
because relicensing derivative works in a source distribution seems risky to
me.  I.e. if I modify the code, remove the notice that says that it is under
the MS-PL, etc. how much risk of copyright infringement of the MS-PL does
this raise?  For discrete components, I see no problem.  It seems to provide
for a great deal of risk when mixing code in files as you state, however,
but we differ as to why (IMO, the problem is with the MS-PL, and probably
intentionally so).

Best Wishes,
Chris Travers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensource.org/pipermail/license-discuss_lists.opensource.org/attachments/20070822/68811a2d/attachment.html>


More information about the License-discuss mailing list