以下是这个问题的背景:我有代码可以出售以获取利润,但我希望只要个人和非营利组织的代码仍然免费,就可以免费提供。
当在GPL v2下发布库时,公司可以免费使用内部吗?如果他们开发基于它的软件,他们有在GPL下发布它,即使他们没有分发它吗?他们可以通过使用(不发布)内部开发的链接到GPL图书馆的软件赚钱,而不需要对作者进行任何补偿吗?
我正在寻找只允许非商业用途(复制,修改,链接到)的软件许可证;由此产生的衍生程序也必须是免费的非商业用途。是否有任何软件许可证可用于非商业用途,并阻止任何商业用途(包括使用软件以赚钱)?看起来知识共享许可证足够灵活,可以做到接近这一点,但我反对将它们用于软件。你觉得怎么样?
或者也许可以简单地写下面的内容?
“这项工作是在双重许可下发布的:
这是否可以有效地使该程序免费用于非营利性用途(复制,修改,使用......),同时保持商业用途?
编辑:PS:在阅读完所有答案并在网上查找信息后,我认为此问题的相关概念是双重许可。互联网上有大量关于它的信息,尤其是关于GPL如何适合(或不适用)双重许可的信息。
答案 0 :(得分:11)
是的,公司可以在内部使用GPL代码。 GPL强加的主要限制是,任何源自它或使用它的源代码也必须在GPL下发布,但如果他们不修改或分发原始GPL代码,那么他们可以使用GPLed程序。 / p>
我认为有两个原因可能导致代码仅用于非商业用途:
该代码将以盈利方式出售,但有人希望将其提供给个人和非营利组织。
有人认为行业和开源是彼此的主要目标。
如果你属于第一类,我的建议是创建一个开源许可证,声明该许可证仅适用于个人和非营利组织,并且任何营利性公司必须购买不同的许可证,并创建第二个您为公司选择的商业许可。简单地向现有许可证添加一个条款,声明它只能用于非商业用途,这是完全可以接受和有效的(尽管你应该注意通过指示,例如,它是一个修改版本的给予许可而不是原始许可证。)
如果你属于第二类,那么我建议你强烈重新考虑你的观点。与自由软件基金会的信念相反,行业和开源并不是相互矛盾的。事实上,开源项目经常获得行业赞助。当一个项目在行业中被广泛采用时,使用它的公司将经常为改进项目贡献时间和金钱,因为增强开源项目也增强了使用它的行业项目。但是GPL的项目将不会被行业采用。 Apache Foundation的各种项目都是具有强大行业支持的项目的典范。这些项目通常得到支持,因为Apache许可证对行业很友好,而且很多公司都使用这些项目,反过来公司对看到项目的改进有着既得利益。
答案 1 :(得分:5)
是。谷歌正在这样工作!
Google正在内部使用自定义Linux发行版,即使在其服务器基础结构上也是如此。 Web服务器是Apache的衍生产品。然而,他们没有在公司外部发布任何内容,并且用户正在远程访问此GPL衍生代码:这是GPL允许的。
然而,谷歌为许多GPL开源项目(包括Linux内核)做出了贡献,他们只选择要披露的内容和不披露的内容。当然,他们被许可条款强制释放他们发布的任何GPL派生二进制文件的源代码。答案 2 :(得分:3)
是的,公司可以在内部使用它。
GPL只是说有二进制文件的人可以请求来源。因此,如果只有拥有二进制文件的人员在公司,那么只有他们可以请求来源。
答案 3 :(得分:1)
您可以尝试Creative Commons license chooser。根据我对您的要求的解释,它建议Creative Commons Attribution-Noncommercial-Share Alike 2.0 France。
更新:
要清楚,我知道CC recommend not using their licenses for software,但我认为OP可能没有列出的缺点。
您也可以根据需要授予免费许可,例如,明确声明您将根据请求对个人和开源用户的商业许可进行例外。然后,每当你得到一个合法的请求时,给他们一次性的许可证。
答案 4 :(得分:1)
是的,你可以。但是你必须在GPL下发布整个应用程序。但如果它只是在内部使用,那不是问题,因为如果你公司的其他人得到你的代码并不重要。您当然不希望将其发布给公众。 从非商业方面来说,GPL允许人们销售应用程序并从中获利,但前提是他们将所有权利交给他们提供给软件的人。
不建议使用知识共享许可,因为他们的官方常见问题解答声明:http://wiki.creativecommons.org/Frequently_Asked_Questions#Can_I_use_a_Creative_Commons_license_for_software.3F
我可以使用知识共享许可吗? 对于软件?
我们不推荐它。创作的 不应使用Commons许可证 对于软件。我们强烈鼓励 你使用的非常好 已经有的软件许可证 可用。我们建议考虑 免费提供的许可证 软件基金会或在 开源计划。不像我们的 许可证,没有提到 源或目标代码,这些存在 许可证是专门设计的 用于软件。
知识共享组织“包裹”了一些 免费软件/开源许可证 用人类可读的“Commons Deed” 和机器可读的元数据。你可以 使用这些“包装”的软件许可证 利用Creative 将人类可读的文件称为 以及机器可读的元数据 同时仍然许可你的工作 已建立的软件许可证。它是 重要的是要注意CC没有 改变了这些软件许可证 方式,但简单地捆绑了人和 机器可读的解释 许可证和原件一起 许可文本。示例:GNU GPL,GNU LGPL,BSD。
答案 5 :(得分:1)
GPLv2中没有使用限制 - 用户可以随意使用,包括用于商业目的。
OSI list of licenses包含对Non-Profit Open Software license的引用,它可能符合您的要求,但要谨慎,因为其他开源许可证(包括GPL可能与其不兼容)。
最后,所有软件许可都是基于版权所有者在软件中保存的版权(和任何专利) - 您可以在自己的许可中加入任何限制 - 但是,采用更受欢迎的许可意味着您的软件是更有可能被使用,扩展和改进。
答案 6 :(得分:1)
或者也许可以简单地说 写下面的内容?
“这项工作是在双重下发布的 许可证:
- 非营利用途:GPL v2许可证。
- 用于其他用途:只要从中获取另一个许可证 原作者。“
醇>这会有效地实现吗? 免费程序用于非营利性用途 (复制,修改,使用,......),而 让商业门敞开 使用
要回答这个问题:否。这是对使用的限制,这是GPL不允许的。
同样,您无法使用开源许可证执行所需操作,因为您显然不希望开源此代码。您希望对其进行非商业使用限制,与开源不兼容。没关系,您可以根据自己想要的任何专有许可证进行许可,但不要将其称为开源。
答案 7 :(得分:1)
我认为您可以使用ExtJS等许可协议。它允许人们在GNU GPL下使用ExtJS,如果人们已经准备好在GPL下发布他们的代码,但如果人们想要根据非GPL许可协议分发他们的代码并提出他们自己的许可,他们必须购买产品的商业版本。我们必须分别为每个项目购买产品许可证。