麻省理工学院与GPL许可证

时间:2010-10-11 00:10:21

标签: licensing

MIT许可证与GPL兼容。 GPL许可证是否与MIT兼容?即我可以将MIT许可代码包含在GPL许可产品中,但是我可以在MIT许可产品中包含GPL许可代码吗?

在我看来,MIT许可与GPL之间的主要区别在于麻省理工学院不要求修改是开源的,而GPL则是。那是对的吗? GPL是否比MIT许可更具限制性?

4 个答案:

答案 0 :(得分:76)

  

在我看来,MIT许可与GPL之间的主要区别在于麻省理工学院不要求修改是开源的,而GPL则是。

真的 - 总的来说。如果您使用的是GPL,则 没有来开源您的更改。您可以修改它并将其用于您自己的目的,只要您不分发它。但是......如果你分发它,那么使用GPL代码的整个项目也会自动成为GPL。这意味着,它必须是开源的,并且收件人获得与您相同的权利 - 这意味着,他们可以转身并分发,修改,销售等等。这将包括您的专有代码,然后不会更长的专有 - 它变成了开源。

与MIT的不同之处在于,即使您实际分发使用MIT许可代码的专有代码,也不必使代码成为开源代码。您可以将其作为已关闭的应用程序分发,其中代码已加密或是二进制文件。包含MIT许可代码可以加密,只要它带有MIT许可证通知。

  

GPL是否比MIT许可更具限制性?

是的,非常如此。

答案 1 :(得分:45)

  

我可以在MIT许可产品中加入GPL许可代码吗?

你可以。 GPL是免费软件以及MIT,两个许可证都不限制您将代码集中在一起,因为“包含”始终是双向的。

在合并作品的版权中(即两件或多件作品共同构成作品),如果一部作品比另一作品“更大”,则不会产生太大的差别。

因此,如果您在MIT许可产品中包含GPL许可代码,您同时也会在GPL许可代码中包含MIT许可产品。

作为第二个意见,两个许可证的OSI listed the following criteria (in more detail)(MIT和GPL):

  1. 免费再分发
  2. 源代码
  3. 衍生作品
  4. 作者源代码的完整性
  5. 不歧视个人或团体
  6. 不歧视奋斗领域
  7. 许可证分发
  8. 许可证不得特定于产品
  9. 许可证不得限制其他软件
  10. 许可必须是技术中立
  11. 两者都允许创作组合作品,这就是你一直要求的。

    如果将这两部作品合并为一种衍生物,则两种许可都不受此限制。

    这两个许可证都不限制分发软件。

      

    在我看来,MIT许可与GPL之间的主要区别在于麻省理工学院不要求修改是开源的,而GPL则是。

    GPL不要求您仅因为制作修改而发布修改。这不准确。

    您可能会将此与GPL下的软件分发混合使用,这不是您直接询问的内容。

      

    这是正确的 - GPL是否比MIT许可更具限制性?

    这就是我理解的方式:

    就分发计数而言,您需要将整个包放在GPL下。软件包内的MIT代码仍然可以在MIT下使用,而GPL适用于整个软件包,如果不受更高权限的限制。

    “限制性”或“限制性更强”/“限制性更少”在很大程度上取决于观点。对于软件用户而言,MIT可能导致软件比GPL下的软件更受限制,甚至有些人现在称GPL更具限制性。具体的用户将更多地限制麻省理工学院。这样说是主观的,不同的人会给你不同的答案。

    由于谈论不同许可证的限制只是主观的,你应该考虑一下你想要实现的目标:

    • 如果您想限制修改的使用,那么麻省理工学院可以比GPL更具限制性,这可能是您正在寻找的。
    • 如果您希望确保软件的自由度不会受到您分发给它的用户的限制,那么您可能希望在GPL下发布而不是麻省理工学院。

    只要你是作者,你就可以决定。

    因此,无论选择哪个许可证,作者都是最具限制性的人;)

答案 2 :(得分:16)

GID比MIT许可更具限制性,这是正确的。

您不能在MIT许可产品中包含GPL代码。如果您分发组合了GPL和MIT代码的组合作品(在某些特定情况下除外,例如“仅仅聚合”),该分发必须符合GPL。

您可以在GPL产品中包含MIT许可代码。整个组合工作必须以符合GPL的方式进行分发。如果您对代码的MIT部分进行了更改,则在分发包含GPL和MIT代码的应用程序时,您将需要发布这些更改的源。

如果您是GPL代码的版权所有者,您当然可以选择在MIT许可下发布该代码 - 在这种情况下,它是您的代码,您可以根据需要在尽可能多的许可下发布。

答案 3 :(得分:5)

IANAL但是我看到它......

虽然你可以结合使用GPL和MIT代码,但GPL却在玷污。这意味着整个软件包获得了GPL的限制。由于这是更严格的限制,您不能再在商业(或相当封闭的源)软件中使用它。这也意味着如果您有一个MIT / BSD / ASL项目,您将不希望向GPL代码添加依赖项。

添加GPL依赖项不会更改代码的许可证,但会限制人们可以对项目的工件执行的操作。这也是ASF不允许依赖于GPL代码进行项目的原因。

http://www.apache.org/licenses/GPL-compatibility.html