我正在编写一个组合测试库,我打算将其发布到公共领域。
我希望我的图书馆对任何希望包含它的开源项目免费。我很高兴闭源商业项目使用我的代码,但希望他们为这个特权付出一点代价。
所以我的计划是双重许可 - 一个可供所有人使用的开源许可证和另一个向付费客户提供的商业许可证。
我的问题涉及开源许可证。通常我会使用GPL,但它没有咬合,因为闭源项目只会在内部使用我的代码进行测试,而不是将他们发布的产品链接到它。测试可以在闭门进行,并且不会分发包含我的库的测试线束 - 因此可以在不违反测试库的GPL的情况下测试封闭的源代码。
我认为我需要一个许可证,要求使用我的代码测试的任何软件都在相同的开源许可证下传播。这样的事情是否已经存在或我是否必须推出自己的GPL变体?
答案 0 :(得分:2)
Creative Commons NonCommercial-ShareAlike应该涵盖它:
http://creativecommons.org/licenses/by-nc-sa/3.0/
非商业性 - 您不得将此作品用于商业目的。
共享 - 如果您更改,转换或以此作品为基础,您可以仅在与此作品相同或类似的许可下分发作品。 < / p>
答案 1 :(得分:1)
查看LGPL。它大致是图书馆的GPL。这意味着人们可以在不发布源代码的情况下使用您的库。如果他们修改你的库,他们仍然必须在LGPL下发布这些更改。
但是,我不明白GPL有什么问题。如果您是双重许可,商业公司如果向您付款,将不会受到GPL的影响。你决定了这些限制是什么。
如果您想严格禁止商业用途(GPL不考虑),请查看CC-nc变体。
答案 2 :(得分:0)
3-clause BSD license是出于这个意图而设计的。但是,由于广告原因,此许可证与某些流行的Copyleft许可证(例如GPL v2)不兼容。 2条款BSD许可证降低了广告原因并变得类似于X / MIT许可证,这两个许可证是最自由的商业友好型开源许可证,但它们涵盖了最终产品附带的代码,因此使用必须明确解决开发过程中的第三方代码问题。
虽然不建议使用许可证扩散,但您可以创建自己的许可证,准确说明所需的条款和条件,此许可证可以基于广泛使用的许可证。
根据您的指定需求,您还可以查看与GPL v3兼容的Apache License,但与GPL v2不兼容。
有关此主题的更详细讨论,您可以阅读FSF网站上的Various Licenses and Comments about Them或维基百科上的Comparison of free software licenses。
免责声明:我不是律师,这不构成法律意见。这就是我理解这些问题的方式。建议您就此事咨询律师。