Answers:
在我看来,MIT许可证和GPL之间的主要区别在于MIT不需要开源,而GPL则需要开源。
正确-一般。你不有,如果你使用GPL开放源代码的更改。您可以修改它并将其用于您自己的目的,只要您不分发它即可。但是...如果您确实分发了它,那么使用GPL代码的整个项目也会自动变为GPL。这意味着,它必须是开源的,并且接收者获得与您相同的所有权利-这意味着,他们可以周转并分发,修改,出售它,等等。其中将包括您的专有代码,不再是专有的-它成为开源。
与MIT的区别在于,即使您实际分发使用MIT许可代码的专有代码,也不必使代码开源。您可以将其作为封闭的应用程序分发,在该应用程序中代码是加密的或为二进制的。只要包含MIT许可通知,包括MIT许可的代码就可以加密。
GPL比MIT许可证更具限制性吗?
是的,非常如此。
我可以在MIT许可的产品中包含GPL许可的代码吗?
您可以。GPL和MIT一样都是免费软件,两个许可证均不限制您将代码合并在一起,因为“ include”始终是双向的。
在组合作品的版权(即两个或多个作品构成一个作品)中,一个作品是否比另一个作品“更大”并没有多大区别。
因此,如果您在MIT许可的产品中包含GPL许可的代码,那么您也将同时在GPL许可的代码中包含MIT许可的产品。
作为第二意见,OSI列出了两个许可证(MIT和GPL)的以下标准(更详细):
两者都允许您创建组合作品,而这正是您所要求的。
如果将两部作品合并视为衍生作品,那么这两个许可证也不受限制。
并且两个许可证均不限制分发软件。
在我看来,MIT许可证和GPL之间的主要区别在于MIT不需要开源,而GPL则需要开源。
GPL并不要求您仅因为进行了修改就释放它们。那不准确。
您可能会将此与GPL下的软件发行混合在一起,而这并不是您直接询问的。
是正确的-GPL比MIT许可证更具限制性吗?
这就是我的理解:
就分发数量而言,您需要将整个程序包置于GPL下。麻省理工学院仍然可以使用该软件包中的MIT代码,而GPL如果不受更高权利的限制,则整个适用于该软件包。
“限制性”或“限制性较高” /“限制性较小”在很大程度上取决于观点。对于软件用户而言,MIT可能会导致其软件的限制要比GPL下提供的软件更为严格,甚至有些人称GPL现在更为严格。具体来说,该用户会称MIT为限制性更高。这么说只是主观的,不同的人会给您不同的答案。
由于谈论不同许可的限制只是主观的,因此您应该考虑要实现的目标:
只要您是作者,就可以决定。
因此,有史以来最严格的人是作者,无论有人选择哪种许可;)
您认为GPL比MIT许可证更具限制性。
您不能在MIT许可产品中包含GPL代码。如果您分发包含GPL和MIT代码的组合作品(在某些特殊情况下,例如“单纯聚合”除外),则该分发必须符合GPL。
您可以在GPL产品中包含MIT许可的代码。整个组合工作必须以符合GPL的方式分发。如果对代码的MIT部分进行了更改,则在分发包含GPL和MIT代码的应用程序时,将需要发布这些更改的源。
如果您是GPL代码的版权拥有者,那么您当然可以选择以MIT许可证发布该代码-在这种情况下,这是您的代码,并且可以根据需要发布任意数量的许可证。
IANAL,但正如我所见....
虽然您可以结合使用GPL和MIT代码,但GPL却很脏。这意味着该软件包作为一个整体受到了GPL的限制。由于限制更严格,您不能再在商业(或封闭源)软件中使用它。这也意味着,如果您有MIT / BSD / ASL项目,则不想将依赖项添加到GPL代码中。
添加GPL依赖关系不会更改您的代码许可证,但会限制人们可以使用您的项目工件。这也是ASF不允许其项目依赖GPL代码的原因。