我已经编写了一个我在MIT许可下获得许可的Ruby gem,但我认为通过在我的规范中使用AGPL库,我可以大大提高测试覆盖率。我编写的实际库代码(将由使用gem的人执行)将永远不会使用此AGPL库,它只是在运行gem规范时在开发环境中运行测试。
根据AGPL授权我的规范代码同时仍然在MIT下授权我的库/应用程序代码是否合法?对于我的GitHub存储库(例如,规范的单独存储库)或我的.gemspec文件(例如没有将规范和AGPL库与gem捆绑在一起),我有什么特别之处吗?
答案 0 :(得分:1)
首先,我不是律师。
我们假设您要使用的库名为L.
由于您的申请代码不是L的衍生作品,因此不受AGPL许可的影响。因此,您可以自由选择分发规则。
您的测试代码是AGL意义上的L的衍生作品,因此如果您发布它,则必须使用AGPL的条款。
将具有不同许可证的文件存储在单个存储库中不是问题。重要的是明确无误地说明每个文件的许可证。最好的想法是将相关注释放在文件头和README或LICENSE文件中。我的意思是像
test
目录中的所有文件均以(...)条款发布。除非另有说明,否则所有剩余文件均以(...)条款发布。
请记住在项目的每种形式的分发中添加此信息,即gem文件,tarball等。如果您必须指定整个 gem发布的条款,则必须提供这两个许可。在gemspec的条款中,它意味着
spec.licenses = ['MIT', 'AGPL']