1

我已经编写了一个 Ruby gem,我在 MIT 许可下获得了许可,但我认为我可以通过在我的规范中使用 AGPL 库来大大提高测试覆盖率。我编写的实际库代码(将由使用 gem 的人执行)永远不会使用这个 AGPL 库,它只是用于在运行 gem 规范时在开发环境中运行测试。

然后我在 AGPL 下许可我的规范代码同时在 MIT 下许可我的库/应用程序代码是否合法?关于我的 GitHub 存储库(例如,规范的单独存储库)或我的 .gemspec 文件(例如,不将规范和 AGPL 库与 gem 捆绑在一起),我有什么特别需要做的吗?

4

1 回答 1

1

首先,我不是律师。

假设您要使用的库名为 L。

由于您的应用程序代码不是 L 的衍生作品,因此不受 AGPL 许可的影响。因此,您可以自由选择分发它的规则。

您的测试代码是 L 在 AGPL 意义上的衍生作品,因此如果您发布它,您必须使用 AGPL 的条款。

在单个存储库中存储具有不同许可证的文件不是问题。重要的是清楚明确地说明每个文件的许可证是什么。最好的办法是将相关注释放在文件头和 README 或 LICENSE 文件中。我的意思是

目录中的所有文件test均根据 (...) 条款发布。除非另有说明,否则所有其余文件均根据 (...) 条款发布。

请记住在项目的每种分发形式中添加此信息,即gem 文件、tarball 等。如果您必须指定发布整个gem 的条款,则必须提供两个许可证。就gemspec而言,这意味着

spec.licenses = ['MIT', 'AGPL']
于 2012-12-18T17:32:06.157 回答