views:

718

answers:

1

Hi, I am a .net mvc web developer trying to understand how open source licenses work; more specially the MS-PL license. I would like to create a commercial web application based off an open source project that comes with an MS-PL license. I know I can modify the software and use it for commercial use, but do I need to include the MS-PL license for my commercial project (the whole thing)?

Say for example I download an open source project which utilizes the MS-PL license. I then modify and add to the project, thereby creating my own version of project. I intend to sell this product for commercial use. Do I need to include an MS-PL license for the entire application? Do I include the MS-PL license just for the original open source code - ie provide the source code from the downloaded project, and not any of my own code?

If I have to provide an MS-PL license for my commercial application then I would have to provide the full source code, and someone code then resell it as well, or modify it and resell it. I know the GPL license works likes this, but I am having trouble with the MS-PL despite its conciseness.

PS

What is the difference between the MS-PL and MS-RL?

Thanks!

+7  A: 

The MS-Pl licensed components remain MS-Pl licensed, and you must include the license with your product, but the rest of your application can be under whatever license you choose.

For Resolver One, which includes (amongst other things) IronPython, we install a 'Licenses' directory along with the application and put the licenses in there. Our about dialog alos mentions the open-source components we use and their licenses.

If you include MS-Pl components in binary form then you are not obliged to include the full sourcecode.

The MS-Pl does require (my reading anyway) that if you distribute the source of a derivative work then it must also be under the MS-Pl (the same requirement does not apply to distribution of binary / object code):

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.

I would take this to mean that:

  1. You are definitely free to modify, distribute and sell derivative works
  2. If you distribute source versions then the parts of your work that are modified forms of the MS-Pl project must also be MS-Pl licensed
  3. Additional code that is not a derivative work of the MS-Pl project may be under the license of your choosing
fuzzyman
Great answer! That clears some of it up. What if I just modify or extend some component, meaning my code is mixed together with the open source code? The way I understand it is that I would still provide the MS-PL license, but how do I differentiate my changes with the original source? For example I am looking to make a CMS system based off an open source project. If I start building off of what's there then how does that work?Thanks
chobo
I've modified my answer to include a note about this - my understanding only of course.
fuzzyman
The MS-PL only covers the bits that you received under the MS-PL, it does not cover the extra portions or derivative works. So if you combine A(MS-PL) and B(MIT), A remains MS-PL and B remains MIT.In general, when you edit a file, you get to set the copyright rules for the changes that you introduce. The original code is under the license that you received it in, and the derivative work and your changes are under any license that you want.So for example, if you combine in a source file BSD code with MIT code, you must keep both copyright licenses on the file.
miguel.de.icaza
So if I use asp.net MVC which is licensed under MS-PL then any sites I create are considered derivative. Meaning I should probably provide the source code for everything created with it, unless I distribute the code in dll, or binary form.
chobo
@chobo: Sites created using ASP.NET MVC are *not* required to be under the MS-PL! You can licence them however you wish.
Jeff Hardy
Thanks miguel and Jeff, your comments are appreciated! I know I'm stretching this out a bit, but could someone explain why MS-PL is not compatible with GPL. What is it about GPL that makes it incompatible? Thanks!
chobo