开源许可证和我

时间:2009-12-31 15:17:25

标签: open-source licensing

我有一个软件,它编写并包含在几个组件中,每个组件都有自己的许可证。 总而言之,正在使用的所有24个组件共享以下许可证:

  • Public Domain
  • GPL
  • LGPL
  • BSD
  • MPL

我问的问题是:

  1. 我是否允许销售此软件的编译版本,该版本链接到所有这些组件?
  2. 这是什么安装在服务器上(作为服务)这有什么区别?
  3. 如果我修改代码怎么办?我必须告诉全世界我做了什么?

5 个答案:

答案 0 :(得分:11)

  
      
  • Public Domain
  •   
  • GPL
  •   
  • LGPL
  •   
  • BSD
  •   
  • MPL
  •   

请注意这些许可证。特别是MPL is not compatible with the GPL。现在,许多(可能是大多数)MPL许可软件都是根据双重许可证分发的,您可以根据GPL条款选择根据MPL 的条款使用和分发软件。 (或有时LGPL)。但在这种情况下,您不应将MPL列入您正在分发软件的许可证列表中,因为为了链接到根据GPL发布的软件,您必须使用双重版本的GPL(或LGPL)选项。许可证。

  
      
  1. 我是否允许销售此软件的编译版本,该版本链接到所有这些组件?
  2.   

Yes(其他许可证也不会影响这一点。)

  
      
  1. 这是什么安装在服务器上(作为服务)这有什么区别?
  2.   

如果您销售的服务只在您自己的计算机上运行该软件,并且不将软件分发给您公司或组织以外的任何人,那么这些许可证都不会对您的任何内容施加任何重大限制。做。特别是,在这些情况下,GPL和LGPL不要求您向其他任何人提供源代码。

如果您使用的是大量第三方软件,那么将补丁提供给上游项目通常仍然是一个好主意。当您尝试升级时,从上游分流可能会在将来导致许多问题,并且上游贡献代码将意味着您会让更多熟悉您正在修改的项目的人员查看您的代码,这有助于提高其质量。

  
      
  1. 如果我修改代码怎么办?我必须告诉全世界我做了什么?
  2.   
对您公司或组织以外的任何人

If you distribute the software,您必须向他们提供源代码,或者提供书面报价,以便日后提供源代码,费用不超过物理地将数据传输给他们。

如果您不分发该软件,则上述任何许可均不对您施加任何重大限制。 GNU Affero GPL或AGPL是我所知道的唯一一个对运行软件作为网络服务的人施加重大限制的许可,并且由于您没有在您的问题中列出该许可,我认为这不是你需要关注。

请注意,我正在从GPL的角度回答这些问题,这是您列出的最严格的许可。实际上,当您将多个软件与这些许可证链接在一起时,您可以认为整个软件根据GPL条款获得许可(MPL除外,正如我所提到的,它是不兼容的)。有关常见许可证之间兼容性的直观描述,请参阅the following slide

License compatibility illustration, follow link for more information

答案 1 :(得分:2)

  1. 是的,但请参阅(3)。

  2. 是的,取决于您阅读的GPL。如果它是你自己的服务器,那么你很可以。

  3. 如果您分发(即销售)可执行文件,其中一个组件是GPL的事实意味着您还必须分发您的代码。

答案 2 :(得分:1)

  1. 是的,但是你必须在某处注意到某些代码(即除了公共领域之外的所有代码)都是在某某许可证下,并且它的来源可以在这里找到。

  2. 不,不应该重要

  3. 仅适用于GPL和LGPL代码

答案 3 :(得分:1)

  1. AFAIK,除非您在软件上使用GPL,否则无法链接到GPL代码(请参阅http://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem)。如果您将其他一些软件与GPL代码链接在一起,则必须具有“兼容许可证”(请参阅​​http://en.wikipedia.org/wiki/License_compatibility)。这匹配,您可以以任何您想要的价格出售您的软件,假设您提供源代码或免费提供此交付。
  2. 只要您不将二进制文件提供给任何人,您就可以将GPL软件放在服务器上,并自行进行更改,而无需提供源代码。 Google使用GPL代码通过网络提供专有服务,从而大量探索这种可能性。但是,如果GPLv3使用“Affero子句”(又名AGPL),则无法使用此行为
  3. 如果您将更改分发为二进制文件,是的,您必须这样做。否则,请检查(2)。

答案 4 :(得分:0)

1:是的,参见earlz或Neil Butterworth回答。

2:??

3:如果您修改GPL / LGPL库并且提供(提供/销售)您的产品,您必须分发代码(更确切地说,您对库所做的修改)。

我的观点:将这些库放在与您不同的项目中,因此有明显的分离,如果被问到,您可以轻松提供补丁。

DISCLAMER:我不是律师,如有疑问请咨询律师