【问题标题】:howto merge two GPL projects [closed]如何合并两个 GPL 项目
【发布时间】:2014-04-15 21:26:31
【问题描述】:

两个 GPL 项目应该如何合并?

场景:有 GPL 项目 A 和项目 B 具有相同的许可证,版本 2 或 3(以及不同的作者,在相应的 COPYING 文件中提到)。项目 B 建立在项目 A 之上(包括 A 的标头并链接到其二进制文件)。现在项目 B 被部分重构并并入 A。(项目 B 已停止)

问题:

  1. 是否必须以不同于“A”的名称发布 (A+B)?
  2. 项目A中的COPYING文件是否应该参考B的COPYING文件 或者只是更新A的COPYING文件中的作者列表的正确方法?
  3. 除了 1. 和 2. 之外还需要其他操作吗?

【问题讨论】:

  • 这个问题似乎是题外话,因为它是关于法律的东西。
  • @Flexo:引用:“软件开发独有的实用、可回答的问题”。
  • 法律事务只能由法律专业人士负责。
  • @Flexo 我应该重新表述问题(如何),还是要将堆栈溢出的所有其他 GPL 许可问题标记为题外话??
  • 我不认为您实质上是在问“什么能让我的法律团队满意”的问题是热门话题。

标签: merge release gpl


【解决方案1】:

最好有一个许可证是什么的单一声明,因为您不能相信用户知道如何合并两个许可证。

很多人认为包含 GPL 许可协议副本的名为 COPYING 的文件的存在足以传达许可。这还不够——如果有文件 COPYING-A 和 COPYING-B 怎么办?哪一种适用?最好在“如何将这些条款应用于您的新程序”部分中添加通知。检查 A 和 B 是否存在此类通知。建议将通知放在每个文件的开头——我从不这样做。如果您的作者没有这样做,您至少会希望有一个显眼的文件 (./LICENSE) 提供通知并描述它适用于哪些文件集合;也许“这个程序中的所有文件”这句话太模糊了,这就是为什么建议每个文件都有一个通知的原因。也许每个文件中的通知可以通过引用“../../COPYING”等来缩写。

GPL 3 第 7 节允许作者添加附加条款,其中之一可能是“要求以合理的方式将此类材料的修改版本标记为与原始版本不同”——坚持修改版本的以不同的名称提供许可软件似乎是合理的,因此是否可以将其命名为“A”的答案是“视情况而定”。您必须阅读 A 和 B 的许可并找出所有附加条款并将它们合并到合并的许可中;您可以添加自己的附加条款。第 7 节还允许作者添加额外的权限,因此您必须阅读这两个许可证,并将不大于两组权限交集的内容作为您的权限集,但如果其中一个附加条款指定附加权限之一不被删除,您必须遵守并保留附加权限。其实第5节都讲到了,但是这里我们把A+B看作是基于A的作品,也是基于B的作品,所以所有的作品都做两次。

“版权 (C) ”形式的行在许可文件中应相邻放置,因为 A 的作者可能拥有与 B 不同的版权年份;由于版权在一定年数后到期,因此将两个版权行合并为一个,将两年或年份列表合并为一个列表并将作者列表的两个作者合并为一个列表是不正确的。 (C) 是多余的,可以去掉,或者用 © 代替,这是版权法中唯一有意义的东西。但是 © 也是多余的,因为“版权”这个词足以达到同样的目的。

为了遵守 5a,您需要添加一行说明您已将两个程序合并为一个,并给出日期。

如果 A 或 B 进行终端交互,您将需要修改其显示的版权/许可消息,与上述相同。

就这一切而言,我假设 GPL 2 遵循相同的模式。

【讨论】:

  • 谢谢;也许我必须澄清这个问题:项目A没有分叉,它继续作为(A + B)。项目 A 和 B 没有额外的许可条款。所以在我看来,将 (A+B) 称为“A”是可以的,但它可能会让用户感到困惑。
  • 那么我理解正确吗,对于 (A+B) 应该有一个单独的 COPYING/LICENSE 文件,并且在显眼的地方应该提到该作品包含(修改)B?跨度>
  • 我不明白为什么知道 A 是否已经分叉是相关的,只是将它们都称为 A 可能会引起混淆。GPL 似乎没有解决这个问题。也许你提到 A not forking 是一种迂回的说法,说 A 的作者是 A+B 的作者。如果是这样,那么 A 的许可证就无关紧要了——代码的作者可以用它做任何事情。
  • 对于任何软件项目,您都需要一份声明,说明整个项目的许可证是什么——它使想要使用它的人更容易使用它。但这可能不是由 GPL 强制执行的——就 GPL 而言,您可以在每个文件上拥有不同的许可证。我不明白为什么调用 A+B "A" 会让用户感到困惑。随着项目的进一步发展,它们会获得新的功能。
猜你喜欢
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
相关资源
最近更新 更多