22

这是这个问题的背景:我有要出售以获取利润的代码,但我希望将其提供/免费提供给个人和非营利组织,只要他们的代码保持免费。

当一个库在 GPL v2 下发布时,公司可以在内部免费使用它吗?如果他们基于它开发软件,他们是否必须在 GPL 下发布它,即使他们不分发它?他们可以通过使用(而不是分发)内部开发的链接到 GPL 库的软件来赚钱,而不给作者任何补偿吗?

我正在寻找只允许非商业用途(复制、修改、链接到)的软件许可证;生成的衍生程序也必须免费用于非商业用途。是否有任何软件许可用于非商业用途,并阻止任何商业用途(包括使用软件来赚钱)?看起来知识共享许可证足够灵活,可以做类似的事情,但我已经读过反对将它们用于软件。你怎么看?

或者也许可以简单地编写如下内容?

“这项工作是在双重许可下发布的:

  1. 用于非盈利用途:GPL v2 许可证。
  2. 其他用途:其他许可,只要是从原作者那里获得的。”

这是否会有效地使程序免费用于非营利用途(复制、修改、使用……),同时为商业用途敞开大门?

编辑: PS:在阅读了所有答案并在网上查找信息后,我决定这个问题的相关概念是双重许可。互联网上有大量关于它的信息,特别是关于 GPL 如何适合(或不适合)双重许可的信息。

4

8 回答 8

14

是的,公司可以在内部使用 GPL 代码。GPL 施加的主要限制是任何从它派生或使用它的源代码也必须在 GPL 下发布,但如果他们不修改或分发原始 GPL 代码,那么他们可以使用 GPL 程序。

在我看来,有两个原因可以使代码仅用于非商业用途:

  1. 该代码将被出售以获取利润,但希望将其提供给个人和非营利组织。

  2. 人们认为,工业和开源是彼此的宿敌。

如果您属于第一类,我的建议是创建一个开源许可证,声明该许可证仅适用于个人和非营利组织,任何营利性公司必须购买不同的许可证,并创建第二个商业许可证您选择的公司。简单地在现有许可证中添加一个条款,说明它只能用于非商业用途是完全可以接受和有效的(尽管您应该注意通过表明该条款显而易见,例如,它是给定的许可证,而不是原始许可证)。

如果你属于第二类,那么我建议你强烈重新考虑你的观点。与自由软件基金会的信念相反,工业和开源之间并没有矛盾。事实上,开源项目经常获得行业赞助。当一个项目在行业中被广泛采用时,使用它的公司会经常为改进项目贡献时间和金钱,因为增强开源项目也会增强使用它的行业项目。但是 GPL 的项目不会被工业界采用。来自 Apache 基金会的各种项目都是具有强大行业支持的项目的典范。这些项目得到普遍支持是因为 Apache 许可证对行业友好,所以很多公司都在使用这些项目,

于 2010-06-15T14:52:38.083 回答
6

是的。谷歌就是这样工作的!

谷歌在内部使用定制的 Linux 发行版,甚至在他们的服务器基础设施上。Web 服务器是 Apache 的衍生产品。但是他们没有在公司之外发布任何内容,并且用户正在远程访问这个 GPL 衍生代码:这是 GPL 允许的。

然而,谷歌已经为许多 GPL 开源项目(包括 Linux 内核)做出了贡献,他们只是选择公开哪些内容和不公开哪些内容。当然,许可条款迫使他们发布他们发布的任何 GPL 派生二进制文件的源代码。

于 2010-06-15T14:36:03.310 回答
3

是的,公司可以在内部使用它。

GPL 只是说拥有二进制文件的人可以请求源代码。因此,如果只有拥有二进制文件的人在公司中,那么只有他们可以请求源。

于 2010-06-15T14:35:44.310 回答
1

或者也许可以简单地编写如下内容?

“这项工作是在双重许可下发布的:

  1. 用于非盈利用途:GPL v2 许可证。
  2. 其他用途:只要是从原作者那里获得的另一个许可证。”

这是否会有效地使程序免费用于非营利用途(复制、修改、使用……),同时为商业用途敞开大门?

回答这个问题:没有。这是对使用的限制,这是 GPL 不允许的。

同样,你不能用开源许可证做你想做的事,因为你显然不想开源这个代码。您想对其施加非商业使用限制,这与 Open Source 不兼容。没关系,您可以在任何您想要的专有许可下对其进行许可,但不要将其称为开源。

于 2010-06-15T15:36:42.383 回答
1

您可以尝试Creative Commons 许可证选择器。根据我对您的要求的解释,它建议Creative Commons Attribution-Noncommercial-Share Alike 2.0 France

更新:

需要明确的是,我知道 CC建议不要使用他们的软件许可证,但我认为 OP 对于列出的缺点可能没问题。

您也可以按需授予免费许可,例如,明确声明您将根据要求为个人和开源用户提供商业许可的例外情况。然后,每当您收到看似合法的请求时,就给他们一次性许可。

于 2010-06-15T14:39:13.973 回答
1

是的你可以。但是你必须在 GPL 下发布整个应用程序。但是,如果它只是在内部使用,这不是问题,因为您公司中的其他人是否获得您的代码并不重要。您当然不会想向公众发布它。在非商业方面,GPL 允许人们出售应用程序并从中赚钱,但前提是他们将所有权利授予他们提供软件的人。

不建议使用知识共享许可证,因为他们的官方常见问题解答指出:http ://wiki.creativecommons.org/Frequently_Asked_Questions#Can_I_use_a_Creative_Commons_license_for_software.3F

我可以为软件使用知识共享许可吗?

我们不推荐它。不得将知识共享许可用于软件。我们强烈建议您使用已经可用的非常好的软件许可证之一。我们建议考虑由自由软件基金会提供或在开源计划中列出的许可证。与我们的许可证不同,这些许可证没有提及源代码或目标代码,这些现有许可证是专门为与软件一起使用而设计的。

知识共享已经用人类可读的“公共契约”和机器可读的元数据“包装”了一些自由软件/开源许可证。您可以使用这些“打包”软件许可证来利用知识共享人类可读文档以及机器可读元数据,同时仍然根据已建立的软件许可证许可您的作品。需要注意的是,CC 并未以任何方式更改这些软件许可证,而只是将人类和机器可读的许可证解释与原始许可证文本捆绑在一起。示例:GNU GPL、GNU LGPL、BSD。

于 2010-06-15T14:42:07.480 回答
1

GPLv2 中没有使用领域的限制——用户可以随意使用,包括用于商业目的。

OSI 许可证列表包括对非营利开放软件许可证的引用,该许可证可能符合您的要求,但要谨慎,因为其他开源许可证(包括 GPL)可能与它不兼容。

最后,所有软件许可都基于版权所有者在软件中持有的版权(和任何专利)——您可以在自己的许可中设置任何您喜欢的限制——但是,采用更流行的许可意味着您的软件更有可能被使用、扩展和改进。

于 2010-06-15T14:46:31.863 回答
1

我认为您可以使用 ExtJS 之类的许可协议。如果人们也准备在 GPL 下发布他们的代码,它允许人们在 GNU GPL 下使用 ExtJS,但是如果人们想根据非 GPL 许可协议分发他们的代码并提出他们自己的许可证,他们必须购买该产品的商业版本. 我们必须为每个项目单独购买产品许可证。

于 2010-06-16T12:24:28.967 回答