麻省理工学院与GPL许可证

fru*_*zer 122 licensing

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

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

小智 76

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

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

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

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

是的,非常如此.

  • 我可以注意到,GPL并没有使软件成为"开源"软件.GPL下的软件变得免费(如保护其用户的自由).自由软件是一种比开放式东西更老,更有意义的运动.这是一篇关于差异的文章:https://www.gnu.org/philosophy/open-source-misses-the-point.html.谢谢 (16认同)
  • 出于同样的原因,人们可能会争辩说MIT更具限制性,因为它不能保护用户的所有自由并且可能导致软件私有化(=限制和用户失去控制).再次感谢 (11认同)
  • @JorgeOrpinel"只有没有许可证的代码才属于该类别." 这是非常非常错误的,没有许可证的代码是专有/"保留所有权利".如果你四处走动并重新分发其他人在没有许可证的情况下制作的代码,那么你将面临很多法律问题.你说你正试图"帮助你和其他读者",但让读者起诉并不是很有帮助.仅供参考. (8认同)
  • @tcurdt为什么这不是谈论自由的"正确的地方"?为什么要进行自我审查?不,不幸的是,这不是"免费"的意思.甚至"开放"都意味着.只是为了澄清麻省理工学院和GPL许可证都不允许你"做任何事".只有没有许可证的代码才属于该类别.干杯 (3认同)
  • 错了,这就是http://stackoverflow.com/help/on-topic应该是stackoverflow.有人认为这是偏离主题的并不是这样.无论如何,我有言论自由,这是一种公共空间,所以...是的.你无法处理错误.实际上,如果可以的话,我正在努力帮助你和其他读者.无论如何,祝你好运 (3认同)
  • @JorgeOrpinel这会使这个问题成为一个非常政治/哲学的问题,而这可能不适合这个问题.对我而言,"自由"实际上意味着"每个人都可以用它做任何事情",而GPL则不然. (2认同)
  • @JorgeOrpinel stackoverflow用于编程问题(因此这是关闭的主题).如果你采取政治/哲学方向,那就更是如此了. (2认同)

hak*_*kre 45

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

您可以.GPL是免费软件以及MIT,两个许可都不限制您将代码集中在一起,因为"include"始终是双向的.

在合并作品的版权中(即两件或多件作品共同构成作品),如果一部作品比另一部作品"更大",则不会产生太大影响.

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

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

  1. 免费再分配
  2. 源代码
  3. 派生作品
  4. 作者源代码的完整性
  5. 不歧视任何人或团体
  6. 没有对奋斗领域的歧视
  7. 许可证的分发
  8. 许可证不得特定于产品
  9. 许可证不得限制其他软件
  10. 许可证必须是技术中立的

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

如果将两个作品组合起来被认为是衍生物,那么这两个许可证也不受限制.

并且两个许可证都不限制分发软件.

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

GPL不要求您仅因为您的修改而发布修改.这不准确.

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

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

这就是我理解的方式:

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

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

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

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

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

因此,作为最具限制性的人是作者,无论任何人选择哪种许可;)

  • 虽然您稍后在答案中澄清,但开始时说"您可以"在MIT许可项目中包含GPL许可代码是非常误导的.最初由MIT许可*的项目一旦包含仅在GPL下可用的代码,就不能再在MIT许可下*作为整体分发. (13认同)
  • tl; dr:麻省理工学院授权的应用程序可以包含GPL代码,但生成的应用程序不是MIT许可的. (9认同)
  • 声称限制性是主观的也是误导性的.这是一个合理且非主观的问题,"我可以通过我获得的这些文件合法地执行哪些操作?" 根据GPL,这组行动实际上是MIT下这些行动的适当子集. (3认同)

Jos*_*phH 16

你是正确的,GPL比MIT许可更具限制性.

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

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

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

  • @buggedcom - 您可以对MIT许可下的部件进行双重许可,但不能对MIT/GPL组合库进行双重许可 - 它必须仅在GPL下获得许可.(您不能使用GPL许可的部件并根据MIT许可证重新许可它们,因为这违反了GPL条款).在jQuery的情况下,代码的版权所有者在双重许可下发布它,所以这不是问题,但如果他们从其他地方"借用"一些GPL代码,他们将不再能够MIT许可合并工作. (7认同)
  • 除非项目是双重许可证,例如jquery. (3认同)
  • MIT许可产品(可能是"应用程序"更好的词)不能包含GPL代码.您可以将GPL代码添加到MIT产品中,但生成的应用程序只能在GPL许可下分发.我以前从未见过某人描述的应用程序只能根据GPL条款作为"MIT许可产品"进行分发.如果许可证不兼容,则根本无法生成组合工作 - 它们兼容的事实意味着您可以生成可以分发并且获得GPL许可的组合工作. (2认同)

tcu*_*rdt 5

IANAL但我看到它....

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

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

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

  • 这不是一个问题*.GPL是设计上的病毒.它旨在供那些希望让其他人免费使用其代码的人使用,但也要求其他人*以相同的方式发布该软件的副本或衍生*尊重用户.GPL关于*用户*.这不是公司通过国家强制垄断来实现利润最大化,因此它的递归实际上是它的美丽和力量,而不是微软可以"精确定位"的"问题".认识到GPL是病毒式的,没有特别的见解〜维基百科已经足够了. (10认同)