【问题标题】:How to comply with all the open source licenses we are using in our product? [closed]如何遵守我们在产品中使用的所有开源许可证? [关闭]
【发布时间】:2009-12-22 16:49:14
【问题描述】:

我们正在开发一个封闭源代码的专有产品,该产品使用了很多开源项目,并且我们没有系统地对它们及其许可证进行分类。现在我们正在尝试构建一个部署包,并且我们希望达到合规性。最简单的方法是什么?

我们是应该制作一个包含所有许可证信息的大文本文件,还是应该为每个开源项目或每个许可证单独文件?我们是否必须包含项目附带的实际文件?它必须与项目文件位于同一目录中吗?

我正在考虑一种更简单的方法,但我不确定它是否符合要求。如果我们只是确定所有不同的许可证(不是项目)并组成一个大文本文件,其中包含每个许可证的所有术语,并在顶部说类似“产品 XYZ 是专有软件,其中包含以下许可涵盖的开源软件。” (各个开源项目不会按名称标识)。

或者,与上述相同,除了按名称标识每个项目及其许可证,但都在一个文件中?

【问题讨论】:

  • 为什么这个问题跑题了??

标签: open-source licensing


【解决方案1】:

与律师交谈。

您可以首先收集您使用的每个软件包的许可信息并阅读它们。许多许可证 (Boost license) 非常清晰和宽松,而其他许可证 (GPLv3) 则不太清楚。大多数情况下,文档中的归属就足够了。如果您要分发源代码,那么您可能需要分发每个许可证文件以及每个包的源代码或下载位置的参考。

无论如何,请阅读许可证,然后与律师交谈

【讨论】:

  • +1 告诉他平淡无奇的真相。
  • 我在公司环境中经历过几次。太多人认为重新分发 OSS 很简单。
  • 开源许可证的好处在于,它们在实践中的异构性比您想象的要少得多。您遇到问题的唯一情况是您尝试遵守限制性权限(尽可能避免 GPL 并远离 AGPL)或使用未明确许可的代码。不过,如果您想要 100% 防弹的端到端检查,您绝对需要一位律师。特别是如果任何许可可能被非法使用(即许可代码侵犯了第三方的版权)。
【解决方案2】:

您阅读了您正在使用的每个组件的许可,理解它,并按照它所说的执行任何必要的操作。

我们没有对它们及其许可证进行有条不紊的编目。

你真的应该。在发货之前,您最不想知道的就是您使用的某个组件的许可证不兼容或条款繁琐。

【讨论】:

  • 您应该始终跟踪许可证,无论它们是否开源。并非所有专有许可都相当于您花钱购买的 BSD,而且专有许可人可能不如 Gnu 许可人好。
  • 最近我不得不向一位没有经验的开发人员解释说,他们编写的代码不可能发布,因为他们无意中将 GPL 库用于闭源产品。幸运的是,撤消它相对容易,并且可以用非 GPL 代码替换该功能,但是 gpl-violations.org 等人公开的违反 GPL 的数量清楚地表明,这种情况发生的频率比你希望的要多(而且大多数侵权方应该更清楚)。
【解决方案3】:

IANAL,但每个许可证通常会准确地告诉您必须做什么才能合规。诸如“必须包含此文本”或“必须包含此版权行”之类的内容。因此,阅读每一个并按照它所说的去做。如果他们没有说必须包含特定文件,那么是的,您可以将它们组合起来。甚至有人说您必须将其作为属性添加到您的文档中。

【讨论】:

    【解决方案4】:

    与律师交谈的建议可能是这里最好的建议(并且为此 +1)。不过要记住的一点是 - 如果您在源代码中包含多个许可证,则需要遵守所有这些许可证。因此,如果除一个之外的所有许可证都是许可的,您可能必须开源您的软件。

    只是需要注意的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 2014-06-15
      • 2019-12-26
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      相关资源
      最近更新 更多