如何合并两个GPL项目

时间:2014-04-15 21:26:31

标签: merge release gpl

如何合并两个GPL项目?

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

问题:

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

1 个答案:

答案 0 :(得分:4)

最好只有一份关于许可证内容的声明,因为您不能相信用户知道如何合并两个许可证。

很多人认为存在一个名为COPYING的文件,其中包含GPL许可协议的副本,足以传达许可。这还不够 - 如果有文件COPYING-A和COPYING-B怎么办?哪一个适用?最好在“如何将这些条款应用于新程序”一节中添加通知。检查A和B是否存在此类通知。建议将通知放在每个文件的开头 - 我从不这样做。如果您的作者没有这样做,您至少需要一个突出的文件(./LICENSE)提供通知并描述它适用的文件集合;也许短语“这个程序中的所有文件”都太模糊了,这就是为什么建议每个文件都有通知。也许每个文件中的注意事项可以缩写为让它们引用“../../COPYING”等。

GPL 3第7节允许作者添加附加条款,其中一个可能是“要求以合理的方式标记此类材料的修改版本,与原始版本不同” - 坚持修改版本的许可软件以不同的名称提供似乎是合理的,所以你是否可以将其命名为“A”的答案是“它取决于”。您必须阅读A和B的许可证并寻找所有附加条款并将其合并到合并的许可证中;您可以添加自己的附加条款。第7节还允许作者添加其他权限,因此您必须读取这两个许可证,并将不超过两组权限的交集作为您的权限集,但如果其中一个附加术语指定了其中一个附加权限不得删除,您必须遵守该规定并保留其他权限。实际上,所有这些都在第5节中讨论过,但在这里我们将A + B视为基于A的作品,也作为基于B的作品,所有作品都是两次。

“Copyright(C)< year>< author of name>”形式的行应该在许可文件中彼此相邻放置,因为A的作者的版权年限可能与B的版权年份不同;由于版权在一定年限后过期,因此将两个版权行合并为一个列表并将两个作者列表的两个作者合并为一个列表将两个版权行合并为一个是不正确的。 (C)是多余的,可以被删除,或者用©代替,这是版权法中唯一有意义的东西。但是©也是多余的,因为“版权”一词充分地用于同一目的。

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

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

我认为GPL 2遵循相同的模式,就所有这些而言。