为了账号安全,请及时绑定邮箱和手机立即绑定

开源软件采用双授权,该如何处理?

开源软件采用双授权,该如何处理?

慕婉清6462132 2019-04-08 11:17:55
我发布一款开源软件。想非商业用户采用GPL协议,商业用户采用自己拟草的协议,自己拟草的协议核心思想是需要花钱购买软件授权后才能用于商业用途。采用这样双授权的方式,是否有冲突?有冲突的话,该如何处理?
查看完整描述

2 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

双授权
只要是软件的版权所有者,就可以以任何授权发布自己控制下的软件。双授权甚至多授权,总是行得通的。客户只需要(明示或暗示的)签署任一许可证,并遵照其条款使用软件,而干脆不管其他许可证是什么。
软件的版权所有者,可以对软件做任何事。所有的许可证,都是版权所有者自愿将部分的权利让渡他人,而不约束版权所有者自己。
就像市场担心MySQL被Oracle收购之后会闭源——这是正确的。Oracle拥有MySQL,有权利宣称MySQL从某个版本之后闭源(或更改许可证)。
GPL非商业的无效性
必须明确一点:GPL与软件的用途是否商业是完全脱钩的。
GPL在开源的基本点之外的关键点只有一个:衍生品仍然是GPL(含引用GPL部分代码的作品)。GPL保护以下的权利:
任何人使用,不在于是好人,或者坏人
任何用途使用,不在于是商业,或者非商业(其实到头来,什么是“商业使用”又怎么定义呢?)
直接销售,只要不修改,或提供修改部分的源码
私有使用,衍生品如果不传播,则可以不开源
也就是说从许可证本身的概念上,“GPL用于非商业用户”或“禁止商业用户按GPL使用”,都不是有效的命题。
GPL非商业的有效性
但GPL防止Shareware等闭源商业软件侵吞代码,在实际上是很有效的。这一点源于GPL的传染性:引用GPL的代码会造成整个软件GPL。
(注:小心——动态链接GPL代码是否适用GPL传染性,这是开源世界里长期扯皮,数十年争论不休的一场大战。为了规避GPL的不明确之处,建议最好在用GPL时,特别注明“动态链接行为视为引用了GPL的代码”。)
所以事实上采用“GPL+自定义”双授权,是一个好办法。只是从概念上,并不是强制商业/非商业用户分开走两个授权,而只是平行提供两个授权,任何用户爱用哪个用哪个。
另外,与GNU的态度不同,我认为如果你的软件是一个函数库,那么采用LGPL是一个好主意。LGPL明示了动态链接函数库不传染整个软件,保护了商业软件与非GPL的其他开源系统的使用权。但LGPL也同时规定了:虽然不必开源整个软件,但对LGPL库本身做的更改,仍然必须交出不得私吞——应当开源并同时遵守LGPL。
达到你的目的,但不做无效的“定义”
虽然开源软件的名称和管理权利总是属于版权所有者(这往往通过商标进行保护),但任何其他人总是有fork(分支)的权力——只要发布的时候改个名字。所以发布了开源软件,软件的代码就属于全世界,控制软件本身的权力就不再完全属于版权所有者自己了。
了解许可证,利用许可证达到目的,但还是请不要做一些一厢情愿的期待。
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 434 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信