MIT vs GPL license

The MIT license is GPL-compatible. Is the GPL license MIT-compatible? i.e. I can include MIT-licensed code in a GPL-licensed product, but can I include GPL-licensed code in a MIT-licensed product?

It seems to me that the chief difference between the MIT license and GPL is that the MIT doesn't require modifications be open sourced whereas the GPL does. Is that correct? Is the GPL is more restrictive than the MIT license?

188562 次浏览

您说得对,GPL 比 MIT 许可证限制更多。

您不能在 MIT 许可的产品中包含 GPL 代码。如果您发布了一个结合了 GPL 和 MIT 代码的组合工作(除非在某些特定情况下,例如“纯粹的聚合”) ,那么该发布必须符合 GPL。

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

如果你是 GPL 代码的版权所有者,你当然可以选择在 MIT 许可下发布代码——在这种情况下,它是你的代码,你可以在任何许可下发布它,只要你想。

我可以在 MIT 许可的产品中包含 GPL 许可的代码吗?

你可以的。GPL 是自由软件,就像 MIT 一样,两个许可都不限制你把代码放在一起,因为“包含”总是双向的。

在合并作品的版权(即两个或两个以上的作品组成一个作品)中,一个作品是否比另一个作品“大”并没有多大区别。

So if you include GPL licensed code in a MIT licensed product you will at the same time include a MIT licensed product in GPL licensed code as well.

作为第二种意见,两种许可证(MIT 和 GPL)的 OSI 列出了以下标准(更详细):

  1. Free Redistribution
  2. 源代码
  3. 衍生作品
  4. Integrity of The Author's Source Code
  5. 不歧视个人或群体
  6. 不歧视努力的领域
  7. 许可证分发
  8. 许可证不能针对特定的产品
  9. 许可证不得限制其他软件
  10. License Must Be Technology-Neutral

两者都允许创作组合作品,这就是你一直要求的。

如果将两个作品结合起来被认为是一个派生的,那么这就不受两个许可证的限制。

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

It seems to me that the chief difference between the MIT license and GPL is that the MIT doesn't require modifications be open sourced whereas the GPL does.

GPL 并不仅仅因为你做了修改就要求你发布它们,这并不精确。

您可能会将此与 GPL 下的软件发布混淆,而这并非您直接询问的内容。

是这样吗—— GPL 是否比 MIT 的许可证限制更多?

我是这么理解的:

As far as distribution counts, you need to put the whole package under GPL. MIT code inside of the package will still be available under MIT whereas the GPL applies to the package as a whole if not limited by higher rights.

“限制”或“更多限制”或“更少限制”很大程度上取决于观点。对于软件用户来说,MIT 可能导致软件比 GPL 下的软件受到更多的限制,甚至有些人现在称 GPL 更具限制性。特定的用户会称 MIT 更具限制性。这么说是主观的,不同的人会给你不同的答案。

As it's just subjective to talk about restrictions of different licenses, you should think about what you would like to achieve instead:

  • 如果你想限制你的修改的使用,那么麻省理工学院能够比 GPL 更严格的限制发布,这可能就是你所寻找的。
  • 如果您希望确保您的软件的自由不会受到分发给用户的那么多限制,那么您可能希望使用 GPL 而不是 MIT 来发布。

只要你是作者,决定权在你。

因此,不管别人选择哪种许可证,有史以来限制最严格的人是作者;)

但在我看来..。

虽然可以将 GPL 和 MIT 代码结合起来,但是 GPL 正在污染。这意味着包作为一个整体受到 GPL 的限制。由于这是更多的限制,你不能再使用它在商业(或更确切地说是封闭源码)软件。这也意味着如果你有一个 MIT/BSD/ASL 项目,你不会想要向 GPL 代码添加依赖项。

添加 GPL 依赖项不会改变代码的许可证,但会限制人们对项目工件的使用。这也是为什么 ASF 不允许他们的项目依赖 GPL 代码的原因。

Http://www.apache.org/licenses/gpl-compatibility.html

It seems to me that the chief difference between the MIT license and GPL is that the MIT doesn't require modifications be open sourced whereas the GPL does.

是的,一般来说。如果使用的是 GPL,就不能使用 来开源您的更改。您可以修改它并将其用于您自己的目的,只要您不发布它。但是... ... 如果您确实分发了它,那么您使用 GPL 代码的整个项目也将自动成为 GPL。也就是说,它必须是开源的,而且接受者和你拥有同样的权利——也就是说,他们可以转而分发、修改、出售它,等等。这将包括您的专有代码,这将不再是专有的-它成为开放源码。

与 MIT 的不同之处在于,即使您实际上分发了使用 MIT 许可代码的专有代码,也不必使代码开放源代码。你可以将它作为一个封闭的应用程序发布,其中的代码是加密的或者是二进制的。包含 MIT 许可的代码可以被加密,只要它携带 MIT 许可通知。

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

是的,非常喜欢。