【问题标题】:How can one software have both open source and commercial versions? [closed]一个软件怎么能同时拥有开源和商业版本? [关闭]
【发布时间】:2013-07-09 23:44:22
【问题描述】:
我碰巧知道有一个路由软件,它有一个 GPL 开源版本 Zebra 项目和一个商业版本 Zebos。这违背了我对开源的理解。如果这 2 个软件基于相同的代码库,那么 GPL 版本自动强制所有其他变体(包括商业版开源)不是正确的吗?
【问题讨论】:
标签:
open-source
licensing
gpl
【解决方案1】:
我不是律师,但是:
GPL 要求 GPL 代码的所有变体都是 GPL 的,但是,没有什么能阻止原作者提供 GPL 和非 GPL 变体的原始代码。
例如,我可以编写一个库,并在 GPL 下发布它,并在需要费用的专有许可下单独发布它。由于我没有修改 GPL 许可版本,这很好。任何获得 GPL 的人都将受到 GPL 的约束。根据专有被许可人的条款向我付款并获得它的任何人都将受到该许可条款的约束。
当一家公司决定根据 GPL 条款开源某些东西时,没有什么可以阻止它对原始代码库做任何想做的事情,包括在不发布它们的情况下进行修改。 GPL 约束同意许可的人,但不约束原作者。
【解决方案2】:
如果核心是开源的并且共享它的一个案例,但请考虑以下几点:
2 个版本,一个依赖开源组件,一个不依赖,例如:
一家专注于 C# / WPF 开发的软件公司,开发了 version A 与 Component X 用 C# 编写。他们想要一个具有相同功能的版本,但在网络环境中,他们无法使用他们的核心代码,必须重新编写,但是无论您选择什么原因(人力、上市时间等),他们都使用开源替代组件 X:
结果:
版本之间没有代码共享,虽然它们基本上是同一个产品。
补充说明
我相信(值得研究)您可以在版本之间共享代码,但在某些情况下仍不能共享相同的许可证定义。例如:
版本 A 和版本 B 都是客户端应用程序,没有代码共享,但使用相同的服务器应用程序。
【解决方案3】:
一些公司拥有产品的开源版本,但提供额外的收费服务,例如支持。
【解决方案4】:
Zebos 是商业的,zebra 是开源的。两种软件的代码库不同。
Zebos 来自 IPInfusion,zebra 是开源的。