Archive for August, 2007

Microsoft to make Ms-PL and Ms-CL, OSI compliant

Tuesday, August 14th, 2007

I got some interesting emails earlier this month on my OSI mailing list, but it doesn’t seem to have garnished much attention out there. Microsoft has been quietly doing something positive for us in the F/OSS world.

Jon Rosenberg of Microsoft’s Open Source Lab, has summited both the Microsoft Permissive License (Ms-PL) and Microsoft Community License (Ms-CL) to the Open Source Initiative (OSI) for approval as “Open Source™” approved licenses.

These licenses do meet the criteria of both the Open Source definition and the Debian Free Software Guidelines. Having the OSI approve these licenses does a bunch for us developers in the F/OSS community in that it allows the public to comment on the issues and problems in those licenses. All of use developers that only work on this in our free time can’t afford to hire lawyers to review the issues with every single license we come across, so the comfort of having the approval of the OSI group helps.

While I’m so happy Microsoft is doing this, I do have a few small reservations. In general, I don’t think having more open source licenses are a “good thing™” for the community. I especially don’t care for any new licenses that overly govern or even disallow mixing code under one license with code under it’s license. We have problems with that type of thing right now where FSF’s GPLv2, Sun’s CDDL, and all the Microsoft shared source licenses prevent mixing code with anything under a different license. GPLv3 did take care of part of this issue to be compatible with the Apache license and a few others.

However, the problem is not only with mixing code across different licenses but also different versions of the same license. We are running into problems where we are not able to mix code that is released only under GPLv2 with code under GPLv3 code right now and its also causing confusion mixing LGPLv2 with GPLv3 code. One of the problems is that if Microsoft releases a new version of their license, any new code under the new license can’t be mixed with code released under the older versions of the license.

I have a few suggestions. Since Microsoft is releasing multiple licenses, why not have a clause to allow us to relicence code under MS-PL up to MS-CL (as in LGPL to GPL) so we can mix some Ms-PL code with code released under the Ms-CL in the future? Right now thats not even possible. The Ms-PL license also gives you a lot of freedoms and on face value seems similar to the intent of the MIT/BSD license except for the issue of mixing code with other licenses (MIT and the new BSD licenses don’t say pretty much anything more then you have a license to do anything you want with it except claim you wrote it and that you get no warranty). If you are planning on using Ms-PL code in your application and you plan to only ever release in binary form only, you can have almost every right you have with the MIT/BSD licenses, but if you ever release in source form, all of your code has to be under the Ms-PL.

All in all, this is positive thing. Awesome step forward Microsoft.