Mic*_*tum 56 licensing open-source
我对各个OSS许可证有相当好的理解,但是当我想在不同的许可证下使用代码时,我总是遇到麻烦.BSD vs. Ms-PL,Apache 2 vs. GPLv3等
是否有某种"交配图表"列出哪些许可证与哪些许可证兼容?
Bri*_*ell 48
自由软件基金会维护一份许可证列表,分类为GPL兼容,GPL不兼容和非免费.这有助于回答最常见的问题,即许可证是否与GPL兼容.由于没有很多其他免费软件许可证要求整个衍生作品在GPL所使用的同一许可证下分发,因此只要代码保留在不同的库或源文件中,其他许可证之间的兼容性问题通常较低.
就Ms-PL而言,你可以使用FSF列表来确定它的兼容性.Ms-PL是(非常)弱Copyleft许可证(Ms-RL略强,但仍被归类为弱Copyleft).这意味着在其下分发的代码必须保留在其下,从而使GPL不兼容,但是您通常可以将其链接到许可或其他弱Copyleft许可下的代码,只要您遵循每个许可的条款和单独许可的代码驻留在不同的库中.唯一可能与之不兼容的许可证是强大的Copyleft许可证,如GPL和AGPL.(标准免责声明:我不是律师,这不是法律建议.如果您需要法律建议,您应该咨询合格的律师).
对于更有限的许可证集,您可以查看David Wheeler的此Free-Libre /开源软件(FLOSS)许可证幻灯片(转载如下).箭头表示可以组合两个许可证,并且组合的工作可以有效地被视为在箭头的末尾具有许可证,可能在箭头开始时从许可证中获得一些额外的限制.
以下段落是关于此主题的一般性咆哮,与您的问题相关但不直接相关
确定许可证兼容性的难度,以及仅仅了解各种许可条款的后果,是许可证扩散是如此糟糕的原因.如果可能的话,请尝试使用通用的,易于理解的许可证,例如GPL,LGPL,BSD 2条款或3条款,MIT/X联盟许可证或公共领域的奉献.无论你做什么,都不要发明自己的许可证.如果必须,请使用您正在参与的项目通用的许可证,以保持与该项目中其余代码的兼容性.如果您遵循这些规则,您将有助于减少混淆,并提高许可证兼容性.