我碰巧知道有一个路由软件有一个GPL开源版本,Zebra项目和一个商业版本Zebos。这违背了我对开源的理解。如果2软件基于相同的代码库,那么GPL版本是否自动强制要求所有其他变体(包括商业开放源代码)是不是正确的?
答案 0 :(得分:2)
我不是律师,但是:
GPL要求GPLed代码的所有变体都是GPL,但是,没有什么能阻止原作者在GPL和非GPL变种中提供原始代码。
例如,我可以编写一个库,并在GPL下发布它,并在需要付费的专有许可下单独发布它。由于我没有修改GPL许可版本,这很好。获得GPL的任何人都将受到GPL的约束。根据专有被许可人的条款向我支付并获得它的任何人都将受该许可条款的约束。
当公司决定根据GPL的条款开源时,没有任何东西可以阻止它对原始代码库做任何想做的事情,包括在不释放它们的情况下进行修改。 GPL绑定了同意许可的人,但不是原作者。
答案 1 :(得分:0)
如果核心是开源并且共享其中一个案例,但请考虑以下内容:
2个版本,一个依赖于开源组件,另一个不依赖于,例如:
一家专门从事C#/ WPF开发的软件公司,用用C#编写的组件X 开发版本A 。他们想要一个版本相同的版本,但在网络环境中,他们无法使用他们的核心代码,而且必须重写,但无论出于何种原因(人力,上市时间等),他们都使用开源代替X组件:
<强>结果:强>
版本A将是商业版。
版本B将是开源的。
版本之间没有代码共享,尽管它们基本上是相同的产品。
附加说明
我相信(值得研究)您可以在版本之间进行代码共享,但在某些情况下仍然不能共享相同的许可证定义。例如:
版本A和版本B都是客户端应用程序,没有代码共享,但使用相同的服务器应用程序。
答案 2 :(得分:0)
有些公司拥有开源版本的产品,但提供额外的服务,例如支持。
答案 3 :(得分:0)
Zebos是商业的,斑马是开源的。两种软件的代码库都不同。 Zebos来自IPInfusion,斑马是开源的。