我是否可以在法律上和道德上参与社区对封闭源代码做出贡献的开放源代码项目?[关闭]


17

假设我在开源许可证下启动并开发了一些项目,并接受了一些社区的贡献。如果我决定进行商业和封闭源代码(或拆分许可)项目,我的立场有多不稳定?

这个问题并没有直接解决社区贡献项目的问题,至少就道德而言,这似乎是不同的领域。从法律上讲,这也可能是个难题,因为我不确定贡献是否属于我的版权范围,或者贡献者是否对他添加的项目部分拥有版权。

只要我提前就可能在将来将项目商业化,我是否在道德上和法律上都是安全的?


5
在很大程度上取决于项目的许可类型-如果它是GPL,则有点困难。
JohnL 2012年

请记住在每个答案前加上IANAL
zzzzBov 2012年

1
在道德上还是道德上?或两者?(-:
hippietrail 2012年

2
您可以通过确定项目的哪些部分将成为您的“秘密酱”而避免哪些麻烦,然后开发后者的开放源码并以这种方式保留它们,来避免很多麻烦。这减少了您的工作量,并使您可以保守秘密。
内森·朗

我认为您在获得BSD许可之后就不能更改项目。您可以做的是在另一个许可证下获得许可,但是该项目还将具有BSD许可证。
彼得B

Answers:


22

通常,社区贡献者将保留其为该项目贡献的代码的版权。当他们贡献代码时,他们将贡献许可给您。如果您想保留将来更改许可条款的可能性,通常需要贡献者将您的版权分配给您(个人或您创建的拥有此项目版权的公司实体),或者需要更改的条款与新的许可条款兼容。当然,如果您需要这种版权转让文书工作,然后才能接受社区的贡献,则社区决定做出贡献的可能性要小得多,您必须做大量工作来获取法律表格以便在接受每个贡献之前。加,如果您决定更改许可条款,则很有可能会使您的项目分叉。在这种情况下,让我感到惊讶的是,新的开源项目无法从社区中获得很多贡献。

如果最初根据拆分许可条款对产品进行许可,或者初始许可条款与将来的封闭源产品兼容,则通常会更容易。例如,可以将BSD许可下的代码随时集成到商业产品中,因此,如果项目和贡献均在BSD许可下,则可以轻松发布同一产品的商业版本。但是,如果您打算(或选择)生产商业产品,则可能会降低对您的项目做出贡献的兴趣-大多数开源开发人员对为商业产品做出无偿贡献不感兴趣。

当然,与任何法律问题一样,您希望与律师交谈,而不是在采取任何最终行动之前依靠论坛发贴。您几乎肯定会希望该律师起草需要他人签署的版权转让文件,并且需要与该律师讨论您的未来计划,以确保所有内容都正确设置。


即使使用分拆式许可,贡献者保留版权似乎也将是一个问题。贡献者可能会决定他们不再希望允许我将其贡献用于商业用途(或者,我想是完全)。我在这个结论中背道而驰吗?
克里斯·拜

5
@ChrisBye-当贡献者贡献代码时,他们会根据项目许可证的条款授予您使用它的许可证。就像您不能追溯阻止人们使用您产品的开源版本一样,贡献者也不能阻止您使用他们最初贡献他们的条款的贡献。后来对许可条款进行更改是您遇到的问题,因为您必须回去并获得所有人的许可。即使对于相对较小的东西(例如从GPL v2到GPL v3)也是如此。
贾斯汀·凯夫

这更有意义。(我要踩“应该是一个新问题”这一行)这对我来说,如果我从一开始就提供分割许可,(如有关simon答案的评论中所建议),我可能不得不处理版权分配。
克里斯·拜

2
@ChrisBye-从法律的角度出发,从一开始就提供分离的许可证是一个更容易的建议-将来更改许可证条款要比指定您最初想要的许可证条款困难得多。当然,这也意味着吸引社区的捐款可能会更加困难,因为大多数开源贡献者对商业产品的无偿贡献并不感兴趣。
贾斯汀·凯夫

16

如果该项目是根据较宽松的许可之一(我知道允许使用BSD,MIT,Boost或Apache许可)进行许可的,则从法律上讲,您可以分发目标代码,而无需提供对代码进行的任何修改源代码返回社区。您也可以在其他许可下许可衍生作品。请注意,您仍然需要根据许可证要求包括许可证文本。

这是否合乎道德是一个颇有争议的问题。我倾向于认为,如果开发人员是根据这些更宽松的许可之一来许可其代码的,那么他们希望该软件可以在开源项目和商业项目中使用。如果他们不想将其代码用于商业用途,那么他们应该已经根据GPLv3对其进行了许可。


这就是为什么IMO,强权左派(例如GPL)胜过嬉皮随心所欲的BSD,MIT等;)
Andres F.

1
即使项目具有非许可的许可证,如果贡献者已将版权分配给您,也有可能将其关闭。一些开源项目确实需要贡献者来分配版权,尽管通常这样做是可以将它们从一个许可更改为另一个许可(例如,在更新GPL时)
MarkJ 2012年

4
@AndresF。不一定...如果TCPIP堆栈未获得BSD代码的许可,则Microsoft不会在Windows NT中使用它,我们现在都将使用MSNetwork :(不要写BSD许可证的好处只是因为有人可以从中赚钱。我想BSD许可证最适合您要成为标准的库,而GPL许可证则是产品的许可证
gbjbaanb 2012年

7

除非我将其转让给他人,否则我对您的项目所做的任何贡献均归我所有。成为版权所有者意味着我要决定可以使用我的作品的许可证。

因此,许可是一个相关但独立的问题。如果我为您的项目做贡献,我应该同意根据项目许可(或兼容的许可)发布我的作品。

许多开放源代码许可证不允许您以后关闭派生源,但有些可以。如果我理解正确,那么没有人会关闭当前(打开的)代码库,因此您也需要考虑这一点。

因此,您要么需要开始使用许可以关闭将来的开发,要么需要与所有贡献者达成协议。在做出重大贡献之前,最好先聘请后者与律师会面,并且要对您要做的事情非常先行。


临时-1。您的答案令人困惑。通过为项目做出贡献,您正在遵守其包含许可证的条款。您是否暗示其他意思?
Craige'8

1
@Craige我的理解是版权和许可的所有权是分开的问题
jk。

@Craige,不,我不是在暗示,但我将进行编辑以使其更加清晰。版权和许可相关,但不相同。
simon 2012年

+1和-1对@Craige表示尊重。jk在这里是正确的,你错了
MarkJ

1
@Chris,我看到的拆分许可项目通过版权分配来工作。如果我拥有某个项目的完整版权,则可以根据我选择的尽可能多的许可提供它。
simon 2012年

4

如果要更改项目的许可证,则可以要求所有贡献者签署“贡献者协议”,或者必须请求每个贡献者的许可。

这非常困难,也是Linux内核仍在gpl v2下的原因


0

大多数OS项目似乎都附有商业功能,例如Enterprise版本。基本上,它们提供SLA,支持等。我认为,如果该项目是开源的,那么从根本上讲,您不能仅仅关闭它。您也许可以使将来的版本成为封闭源并重命名它们,或者使插件成为封闭源,但是据我所知,实际项目必须保持开放源代码。我认为企业是更好的选择,您仍然可以获得开源收益,并且可以产生收入。
出于好奇,您为什么要关闭项目源?


0

从法律上讲,如果您使用的许可证开放得足够多,从而涉及到的任何人都可以将其商业化,那么我想(不是律师)您也可以这样做。

从伦理上讲,您将承担更大的义务。随着计划的改变,您必须在开始时以及随着时间的推移都非常开放和明确自己的意图。


0

另外,您可能希望采用类似于Redhat的模型。构建封闭源代码插件,但保留核心开放源代码。这也可以带来更好的创新,因为您仍将获得有益于开源社区的产品的社区支持。提供培训,咨询和支持也可以为您带来一笔交易。

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.