Open source 我应该使用什么OSS许可证?

Open source 我应该使用什么OSS许可证?,open-source,licensing,Open Source,Licensing,我正在考虑启动一个OSS项目,并希望得到一些建议 我想使用一个许可证,允许免费使用该项目用于个人和非营利用途,但允许我收取商业许可证费用(类似或类似) 请有人就如何处理这个问题提供建议或链接到一些文章?提前感谢。正如开源定义所描述的,如果您想保持开源,就不能限制项目的使用。换句话说:你不能禁止开源应用的商业用途。因此,您可以选择另一个(非开源)许可证来满足您的需求,或者选择另一种方式 一种可能是仅在开放源代码许可证下发布源代码,并拥有另一个二进制发行版许可证。据我所知,这对Java是正确的。如果

我正在考虑启动一个OSS项目,并希望得到一些建议

我想使用一个许可证,允许免费使用该项目用于个人和非营利用途,但允许我收取商业许可证费用(类似或类似)


请有人就如何处理这个问题提供建议或链接到一些文章?提前感谢。

正如开源定义所描述的,如果您想保持开源,就不能限制项目的使用。换句话说:你不能禁止开源应用的商业用途。因此,您可以选择另一个(非开源)许可证来满足您的需求,或者选择另一种方式

一种可能是仅在开放源代码许可证下发布源代码,并拥有另一个二进制发行版许可证。据我所知,这对Java是正确的。如果你的应用程序的构建有点复杂的话,这很好用


您可以在GPL许可证下发布应用程序。这并不禁止商业用途。但如果创建了一些衍生作品,它也必须获得GPL许可。这对于不是单独使用,而是在合并产品中使用的库或类似内容非常有效编辑:正如DrJokepu提到的,在Web服务器堆栈中使用GPL框架将有助于避免发布自己的源代码。这就是为什么GPL的一个扩展是Affero GPL,它需要您在同一许可证(AGPL)下发布您的作品,即使您不发布它,但只使用它来构建公共网页。因此,对于Web服务,您需要AGPL来实现相同的结果。

您不能向我们提供OSI认证的开放源代码许可证并禁止商业使用


如果你想阻止别人把你的软件作为某种收缩包装软件出售,你可以使用GPL风格的许可证。为了获得最大的兼容性,我建议使用GPLv2+(Gnu通用公共许可证,版本2,或任何更高版本,由您自行决定)。有了这个许可证,有人可以出售你的软件,但他们必须明确,任何人都可以获得源代码,并且可以自由地重新分发。我认为,这将涵盖大部分人们希望禁止的商业用途。

这本制作开源软件的书有一个很好的章节。它概述了一个单一实体,例如基金会“拥有”项目源的版权的方法。

基金会选择在两个不同的许可方案下,一个是封闭的,另一个是开源的。对于您的特殊情况,您需要确保您坚持使用强大的许可证(如GPL),以防止可用源代码的商业衍生作品

然而,正如其他人所指出的,这并不妨碍商业实体使用您的软件,只是阻止他们将您的作品卖给其他人。奇怪的是,在某些情况下,许多组织宁愿购买一些东西,也不愿免费下载和使用一些东西。这些组织同样需要与供应商签订具有法律约束力的合同和某种形式的支持。也就是说,当你销售软件时,你实际上是在销售一整套其他服务,同时也是一个“收缩包装”的产品


现在,如何关闭和销售代码,以及在GPL许可下发布代码?在整个安排中,精神上的法律部分是,IP对基金会的贡献不是在GPL许可证下作出的。相反,开发者把他们的知识产权交给基金会的“贡献者协议”,该协议通过了他们对基金会的变更的版权,并允许基金会在两个不同的许可下发布代码。最后一点警告是双重许可的一大缺点,有时开发人员对贡献者协议不感兴趣,他们只希望在开源许可下进行更改,而不希望其他更改。有不少投稿人协议在这个地方生效,但是。

谢谢,我重新阅读了我发布的链接,我相信他们会按照你所描述的那样做。只有当您以GPL3的形式发布项目时,才能获得源代码。如果您不发布源代码,您需要支付商业许可证(不提源代码)。请注意,在Web复兴的今天,您不需要将软件作为产品发布,您也可以将其作为服务提供,所以将库作为GPL发布并不会真正停止商业使用。@DrJokepu:没错,这就是为什么Affero GPL特别关注这个案件。我将此添加到我的答案中。我知道这已经被标记为离题,但只是为了将来的读者,提供了一个关于如何选择在大多数常见情况下有效的许可证的简单指南。