My project is
MIT licensed and 3rd party code is all either
MIT licensed which are both compatible licenses.
I maintain project code licenses per file, that is each source includes a license comment on top of a file, each file is a subject to it's own Copyright and license notices.
However entry project as a whole is
MIT because 3rd party (non
MIT) code is sublicensed.
Problem now is that I want to include another 3rd party code (a single file) which is
MS-LPL Microsoft Limited Public License is not OSI approved because of a restriction which state that the
MS-LPL licensed software/code is permitted to run only on Microsoft Windows OS:
- (F) Platform Limitation- The licenses granted in sections 2(A) & 2(B) extend only to the software or derivative works that you create that run on a Microsoft Windows operating system product
I have no problem with that because the software (project) as a whole is not cross platform and can run only on Windows anyway.
Another issue with
MS-MPL is that it does not permit sublicensing:
(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.
I'm considering between 2 options and I'm not sure whether either one or both options are valid thing to do to keep my project under single license as a whole:
MS-LPLlicensed file into project, and put license and Copyright comment into this file just like every other file in the project does.
Relicense entry project (my own work) as
MS-LPLand let 3rd party code stay as it is,
Problem with first option is that entry project can't be published as
MIT licensed because it contains a
MS-LPL licensed file which can't be sublicensed and does permit porting code to other systems.
Second option looks less problematic but problem is again that entry project can't be
MS-LPL licensed because it would contain
MIT code which opposes restrictions introduced by
I could be easily wrong on these 2 options, maybe there are some other options I should consider?