开源许可我的代码会在以后限制我吗?


29

假设我开发了一个有用的库,并决定将其发布为开源。一段时间后,我有业务需要做一些不符合开源许可证的事情。我可以这样做吗?

我应该如何以保持所有权的方式发布软件,并且将来不要以任何方式阻止自己使用该库?

请记住,至少在理论上,其他开发人员可能会决定为我的开源项目做出贡献。我可以在许可证中指定作为原始开发人员的我也拥有其贡献的所有权吗?不要误会我的意思,我不是想作恶并拥有他人作品的所有权-我只想保留我的所有权,如果有人发布了重要的错误修正,我可能会无法使用原始代码,除非我也用他的作品。


6
根据一种许可进行发布并不会阻止您也根据另一种许可进行发布-毕竟,您仍然拥有代码。源代码一直都是双重许可的(或三重许可或更多)。
自我说明-想起

Answers:


44

您始终保持开源许可证下的所有权。您创建的作品是您的财产,您可以使用它做任何想做的事情(当然,在法律限制内),包括允许其他人根据开放源代码许可的条款使用它。如果您想将其用于专有项目,欢迎这样做,除非您已通过合同将权利完全转让给他人。但这不是开源许可证的作用。它们是关于共享有用性,而不是放弃所有权。

一旦其他人开始做出贡献,事情就会变得有些混乱。那是他们的工作,而不是您的工作,您需要征得他们的同意。您可以做的一件事就是在双重许可下发布您的库。SDL的主要创建者和维护者Sam Lantinga就是这样做的。因为Apple不喜欢iOS的动态链接库,并且在静态链接的应用程序中遵守LGPL的麻烦远不如其应有的价值,所以他根据LGPL和静态iPhone应用程序的商业许可发布了SDL。当任何人提交补丁程序时,他会明确要求他们获得在两个许可证下将其补丁程序部署到库中的许可,如果他们不喜欢这样做,则不会将其添加到代码库中。

编辑:我的例子不再准确。不久前,Sam更改了模型(不知道为什么;也许他只是对管理上的麻烦感到厌倦),现在以高度允许的zlib样式许可来许可SDL。但是他曾经这样做。


1
+1,特别是用于说明如何处理其他作者的文稿。
Frank Shearar 2010年

5

我不是律师,这不是法律建议。如果需要法律保证,请聘请律师。

您绝对可以双重许可您的软件-Trolltech使用Qt做到了很多年,而Linden Lab使用SecondLife客户端做到了。

您可以使用任何您喜欢的许可证。某些许可证与封闭的商业环境兼容,例如Mozilla MPL,MIT和BSD许可证,以及(我相信)Sun的CDDL和Apache许可证。

但是,如果您需要灵活地以开放源代码项目和封闭源代码产品的形式发布软件,则绝对可以以原始作者的身份进行发行。唯一的问题是用户贡献的问题。您不能将他人的贡献纳入您的商业版软件中,除非他们合法地向您发布版权。GNU这样做是出于他们将来会更新许可证的唯一原因。

请注意,用户,尤其是贡献者可能不会这样,因此可能会影响您项目周围的社区。

同样,请咨询律师以了解详细信息。


麻省理工学院,又名“随你所愿”。
Evan Plaice 2014年

2

我也不是律师,但是...

除了像GPL这样的限制性(会迫使您向使用它们的项目开放源代码)许可证之外,还有非限制性(意味着您可以在商业项目中使用此类软件)许可证,例如Lesser GPL或Apache License(2.0 ?)。因此,也许您可​​以简单地以非限制性条款发布软件。


2
GPL不会更改代码所有权。如果我在GPL上发布代码,则该代码适用于使用该代码的其他人-我拥有我想要的任何许可,并且可以随心所欲地使用它(但是由于法律不行得通,我不能限制使用该软件的人员的使用在GPL上)。
Maciej Piechotka 2010年

2
我要说的是限制性的,是GPL强制您的库用户以GPL兼容许可证发布他们的软件,而L-GPL,Apache等...(BSD?)这样的许可证却没有。现在,我不确定如果您对代码进行了GPL编辑,并且有人对它进行了更改,那么您就可以简单地将其商业发行,就好像什么都没有发生一样。我认为您需要首先消除添加项...但是,如果库/框架是L-GPL许可的,那么可以肯定,您可以像其他任何人一样在商业应用中使用它。我希望这是有道理的。
帕维尔Dyda

这正是我编写库时所做的。发布商业库没有多大意义,通常是以这种方式发布的最终用户应用程序,如果它是非限制性许可证,则可以在我的项目中使用该库。而且,即使我编写它还是其他人也没有关系。
Goran Jovic

@Goran,无论使用什么许可证,您都可以在自己的项目中使用该库。这是您的图书馆,也是您的项目:许可证适用于其他人,而不适用于您。
TRiG
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.