假设我在开源许可证下启动并开发了一些项目,并接受了一些社区的贡献。如果我决定进行商业和封闭源代码(或拆分许可)项目,我的立场有多不稳定?
这个问题并没有直接解决社区贡献项目的问题,至少就道德而言,这似乎是不同的领域。从法律上讲,这也可能是个难题,因为我不确定贡献是否属于我的版权范围,或者贡献者是否对他添加的项目部分拥有版权。
只要我提前就可能在将来将项目商业化,我是否在道德上和法律上都是安全的?
假设我在开源许可证下启动并开发了一些项目,并接受了一些社区的贡献。如果我决定进行商业和封闭源代码(或拆分许可)项目,我的立场有多不稳定?
这个问题并没有直接解决社区贡献项目的问题,至少就道德而言,这似乎是不同的领域。从法律上讲,这也可能是个难题,因为我不确定贡献是否属于我的版权范围,或者贡献者是否对他添加的项目部分拥有版权。
只要我提前就可能在将来将项目商业化,我是否在道德上和法律上都是安全的?
Answers:
通常,社区贡献者将保留其为该项目贡献的代码的版权。当他们贡献代码时,他们将贡献许可给您。如果您想保留将来更改许可条款的可能性,通常需要贡献者将您的版权分配给您(个人或您创建的拥有此项目版权的公司实体),或者需要更改的条款与新的许可条款兼容。当然,如果您需要这种版权转让文书工作,然后才能接受社区的贡献,则社区决定做出贡献的可能性要小得多,您必须做大量工作来获取法律表格以便在接受每个贡献之前。加,如果您决定更改许可条款,则很有可能会使您的项目分叉。在这种情况下,让我感到惊讶的是,新的开源项目无法从社区中获得很多贡献。
如果最初根据拆分许可条款对产品进行许可,或者初始许可条款与将来的封闭源产品兼容,则通常会更容易。例如,可以将BSD许可下的代码随时集成到商业产品中,因此,如果项目和贡献均在BSD许可下,则可以轻松发布同一产品的商业版本。但是,如果您打算(或选择)生产商业产品,则可能会降低对您的项目做出贡献的兴趣-大多数开源开发人员对为商业产品做出无偿贡献不感兴趣。
当然,与任何法律问题一样,您希望与律师交谈,而不是在采取任何最终行动之前依靠论坛发贴。您几乎肯定会希望该律师起草需要他人签署的版权转让文件,并且需要与该律师讨论您的未来计划,以确保所有内容都正确设置。
如果该项目是根据较宽松的许可之一(我知道允许使用BSD,MIT,Boost或Apache许可)进行许可的,则从法律上讲,您可以分发目标代码,而无需提供对代码进行的任何修改源代码返回社区。您也可以在其他许可下许可衍生作品。请注意,您仍然需要根据许可证要求包括许可证文本。
这是否合乎道德是一个颇有争议的问题。我倾向于认为,如果开发人员是根据这些更宽松的许可之一来许可其代码的,那么他们希望该软件可以在开源项目和商业项目中使用。如果他们不想将其代码用于商业用途,那么他们应该已经根据GPLv3对其进行了许可。
除非我将其转让给他人,否则我对您的项目所做的任何贡献均归我所有。成为版权所有者意味着我要决定可以使用我的作品的许可证。
因此,许可是一个相关但独立的问题。如果我为您的项目做贡献,我应该同意根据项目许可(或兼容的许可)发布我的作品。
许多开放源代码许可证不允许您以后关闭派生源,但有些可以。如果我理解正确,那么没有人会关闭当前(打开的)代码库,因此您也需要考虑这一点。
因此,您要么需要开始使用许可以关闭将来的开发,要么需要与所有贡献者达成协议。在做出重大贡献之前,最好先聘请后者与律师会面,并且要对您要做的事情非常先行。
如果要更改项目的许可证,则可以要求所有贡献者签署“贡献者协议”,或者必须请求每个贡献者的许可。
这非常困难,也是Linux内核仍在gpl v2下的原因