Open source 一个软件如何既有开源版本又有商业版本?

Open source 一个软件如何既有开源版本又有商业版本?,open-source,licensing,gpl,Open Source,Licensing,Gpl,我碰巧知道有一个路由软件,它有一个GPL开源版本Zebra项目和一个商业版本Zebos。这违背了我对开源的理解。如果2个软件基于相同的代码库,那么GPL版本是否自动授权所有其他变型,包括商业开放源?< P>如果核心是开源的并且共享它的一个实例,但是考虑以下内容: 两个版本,一个依赖于开源组件,另一个不依赖,例如: 一家专门从事C#/WPF开发的软件公司,用C#编写的组件X开发了版本A。他们想要一个同样的版本,但在网络环境中,他们无法使用核心代码,必须重新编写,但他们使用开源替代组件X,无论您选择

我碰巧知道有一个路由软件,它有一个GPL开源版本Zebra项目和一个商业版本Zebos。这违背了我对开源的理解。如果2个软件基于相同的代码库,那么GPL版本是否自动授权所有其他变型,包括商业开放源?

< P>如果核心是开源的并且共享它的一个实例,但是考虑以下内容:

两个版本,一个依赖于开源组件,另一个不依赖,例如:

一家专门从事C#/WPF开发的软件公司,用C#编写的组件X开发了版本A。他们想要一个同样的版本,但在网络环境中,他们无法使用核心代码,必须重新编写,但他们使用开源替代组件X,无论您选择什么原因(人力、上市时间等):

结果:

  • 版本A将是商业版

  • 版本B将是开源的

版本之间没有代码共享,尽管它们基本上是相同的产品

附加说明

我相信(值得研究)您可以在不同版本之间共享代码,但在某些情况下仍然不能共享相同的许可证定义。例如:


版本A和版本B都是客户端应用程序,没有代码共享,但使用的是同一个服务器应用程序。

我不是律师,但:

GPL要求GPLed代码的所有变体都是GPLed,但是,没有任何东西可以阻止原始作者在GPLed和非GPLed变体中提供原始代码

例如,我可以编写一个库,并在GPL下发布,也可以在需要付费的专有许可下单独发布。因为我没有修改GPL许可版本,所以这很好。任何获得GPL的人都将受到GPL的约束。任何根据专有许可证持有人的条款向我付款并获得该许可证的人都将受到该许可证条款的约束


当一家公司决定根据GPL条款开源时,没有任何东西可以阻止它对原始代码库做任何事情,包括在不发布代码的情况下进行修改。GPL约束同意许可的人,但不约束原始作者。

一些公司有开源版本的产品,但提供额外的服务,如支持。

Zebos是商业版,zebra是开源版。这两种软件的代码库不同。
Zebos来自IPInfusion,zebra是开源的。

我投票结束这个问题,因为它涉及许可或法律问题,而不是编程或软件开发。有关详细信息,请参阅。