开源许可证和我

Tzu*_*hay 2 licensing open-source

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

  • 公共区域
  • GPL
  • LGPL
  • BSD
  • MPL

我问的问题是:

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

Bri*_*ell 11

  • 公共区域
  • GPL
  • LGPL
  • BSD
  • MPL

这里要小心这些许可证.特别是,MPL与GPL不兼容.现在,MPL的许多(也许是大多数)作品许可的软件以双重许可模式,在其中您可以选择使用并根据MPL条款分发软件分发根据GPL(或有时LGPL)的条款.但是,在这种情况下,你不应该列出你在分发软件许可证的列表中的MPL,因为为了链接到GPL下发布的软件,你必须使用双的GPL(或LGPL)选项执照.

  1. 我可以出售这个链接到所有这些组件的软件的编译版本吗?

(并且其他许可证也不会影响这一点).

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

如果你是销售服务,在你只贵公司或组织外部对自己的计算机上运行的软件,不用软件分发到任何人,那么所有这些许可证的强加你可以做任何显著的限制.特别是,在这些情况下,GPL和LGPL不要求您向其他任何人提供源代码.

如果您使用大量第三方软件,那么将补丁贡献给上游项目通常仍然是一个好主意.当您尝试升级和贡献代码上游将意味着你得到更多的人谁是熟悉要修改为您检查代码项目,它可以帮助提高它的质量,从上游分歧会造成大量的在未来的问题.

  1. 如果我修改代码怎么办,我必须告诉全世界我做了什么?

如果您分发软件给任何公司或组织外部,那么你必须为他们提供的源代码,或为他们提供一个书面报价在日后提供源代码,不低于实际传输成本更给他们的数据.

如果您不分发该软件,则上述任何许可均不对您施加任何重大限制.在采用GNU Affero GPL或AGPL,是我所知道的,唯一的许可证规定了谁上运行的软件作为网络服务的人显著限制,因为你没有列出该许可证在你的问题,我不认为这是你需要的东西要关注.

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

许可证兼容性说明,请点击链接以获取更多信