3

I would like to modify and use code of a MIT project within a MS-PL project. Am I allowed to do that?

I've already searched for it with Google and Bing, but I could not find anything like "Yes (No) you can (not) use MIT code within a MS-PL project". I am no jurist, so it is quite hard to interpret any license.

  • Well. Of of course I tried to find anything. But I am looking for a concrete answer since about 2 month. I really can't find anything. – Florian Apr 15 '14 at 11:19
  • @gnat It is a direct question about software licensing which is on topic. – maple_shaft Apr 15 '14 at 11:49
  • @maple_shaft it may be 200% on-topic, but per my reading it blatantly lacks research. Simple googling for MIT and MS-PL shows multiple references and this SO question at the top: Is the MIT license compatible with the Ms-PL?, with several related questions. Among the links shown by google is even Programmers question: Understanding the Microsoft Public License (MS-PL), discussing mix of the projects having these two licenses – gnat Apr 15 '14 at 12:08
  • I've already found that question. You can take a look at my comment. Can I use MIT code within a MS-PL project? – thefiloe Jan 8 at 18:57. There is no clear answer. And I've asked for clear answer like "Yes or No". And there were just suggestions and nothing else. – Florian Apr 15 '14 at 20:32
6

I am not a lawyer, but this is how these licenses are usually interpreted in my experience:

The MIT license is a so-called permissive license. It explicitely allows merging and sublicensing. That means you can use MIT-licensed code and relicense it under a different license. This allows you to use the code in any project regardless of the license.

The only condition you have to fulfill is that you need to include the copyright notice and permission notice of the MIT-licensed component in your project. You don't present this notices in a way that it looks as if it applies to your whole project. You should just make clear that your product includes MIT-licensed code, who made it and what licenses apply to the code you used. Common practice is to put these in the readme-file of a non-gui application or the about-section of a GUI application.

The Microsoft Public License is a lot more convoluted than MIT, but similar in spirit. It is also a permissive license which also allows to merge and sublicense the resulting product. The MS-PL puts an additional restriction for sublicensing: "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". Whether or not a license complies with the MS-PL is a topic you can debate about (The GNU-GPL does not, but I am quite sure the MIT does), but in your case it's irrelevant. You intend to license the resulting software under the MS-PL. That means it does not concern you, because the MS-PL code retains its license.

| improve this answer | |
  • So if I am right, I just have to include this: wpfsvl.codeplex.com/license in all code files that are based on the code of that project – Florian Apr 15 '14 at 13:27
  • @thefiloe Yes, you need to do that. But when your program has some place for copyright information (about-page, credits, readme etc.) you need to place it there, too. – Philipp Apr 15 '14 at 13:44
  • Do I really have to place the license into my credits list? Wouldn't it be enough to write something like: [Author]: Implementation of [XXX]; See [projectXXX] ([url of project]). – Florian Apr 15 '14 at 20:28
  • @thefiloe The MIT license says: "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software". That means your software must include the full license text somewhere. But it does not define exactly how and where, so when you have a more suitable way to place the license text you can do so. – Philipp Apr 15 '14 at 21:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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